我遇到了这两种在 Javascript 中声明函数的方式。
一种是赋值表达式,它声明foo
函数返回的任何内容,即
var foo = function(){
//do something
};
声明函数的另一种方式似乎使它成为更大对象的属性:
foo: function() { //做某事 }
我假设当您需要在对象上下文中访问该函数时,您会使用第二种形式,即:
myobject.foo();
第二种形式的正确名称是什么?
我遇到了这两种在 Javascript 中声明函数的方式。
一种是赋值表达式,它声明foo
函数返回的任何内容,即
var foo = function(){
//do something
};
声明函数的另一种方式似乎使它成为更大对象的属性:
foo: function() { //做某事 }
我假设当您需要在对象上下文中访问该函数时,您会使用第二种形式,即:
myobject.foo();
第二种形式的正确名称是什么?
两者都是匿名函数,第一个分配给变量,第二个分配给对象文字中的属性。
请注意,赋值表达式只是:
foo = something
在这种情况下,事物恰好是一个匿名函数,但术语赋值表达式用于所有赋值,而不仅仅是函数。
以下:
var foo = function(){
//do something
};
右侧是FunctionExpression,它与 FunctionDeclaration 的不同之处在于,在执行代码之前不会创建函数,这是在处理函数声明并发生变量实例化之后。
它不是函数声明。
> foo: function() {
> //do something
> }
这也是一个函数表达式,将其与第一个形式相同:
var obj = {};
obj.foo = function(){...};
它也仅在执行代码时创建。以上两者之间没有实际区别,使用任何看起来最好的东西。
哦,在函数表达式中,名称是可选的(由于 IE 和命名函数表达式的问题,通常建议不要使用)。