JavaScript function different syntax?
Possible Duplicate:
What is the difference between a function expression vs declaration in JavaScript?
This JavaScript syntax I haven't seen till now, what does it do really?
以下两种编写函数的方法有什么区别?我看到两个都用过,但我不确定哪一个是"正确的"。
1 2 3 4 5 6 7 8 | function init() { } init: function() { }, |
第二种方式写作的好处是什么?
函数声明
1 2 3 | function init() { } |
函数表达式
1 2 3 | var init = function() { }; |
主要的区别与javascript中的
通过您的例子,我相信您也有兴趣在
1 2 3 4 5 6 7 | //obj is the object name var obj = { //init is the property name or key and the anonymous function is the value init: function() { }, anotherProp: 'some value' }; |
使用方法如下:
1 2 | obj.init(); alert(obj.anotherPorp); |
在对象文本中,对象的不同属性是用
我建议您在javascript http://learn.appendto.com/lessons上浏览这个免费系列,它将为您解答许多这些问题,并为您成为JS开发人员提供坚实的基础。
第一个示例定义了全局范围内的函数,可以使用
通常,第二个示例提供了一个较小的范围,您可以在其中执行函数。
第一个示例允许您这样调用函数:
第二,更可能是:
1 2 3 4 5 | var thing = function() { init: function() { } }; thing.init(); |
第二个只能在对象文本的上下文中使用:
1 2 3 4 5 6 7 8 9 10 11 | var myNamespace = { func1: function () { // do something }, func2: function () { // do something else }, someValue = 5 }; |
第一个表单作为语句执行。相当于:
1 2 3 | var init = function () { // do something }; |
尝试始终使用:
1 2 3 | init: function (){ } |
在编写对象文本时。
当您试图处理一个全局函数时,将其设置为var,因此:
1 2 3 | var init = function(){ } |
记住,每个都有自己的位置,但我个人喜欢为我正在处理的项目编写一个名称空间,并使用一个对象文本。
现在,只有在设置对象后,这两个选项才能在对象中使用。另一种方法有点马虎,现在很少使用,但无论操作顺序如何,都可以调用它,因此可以在代码中设置它之前或之后调用它…同样,这在很多情况下被抛弃了。
1 2 3 | function init(){ } |