3

可能重复:
自动执行匿名 JavaScript 函数的括号位置?
“(function ( ) { } ) ( )” 和 “(function ( ) { } ( ) )” 在 JavaScript 中的功能是否相同?

我已经看到 javascript 匿名函数以两种不同的方式编写:

(function(){

})();

(function(){

}());

我一直认为上面的是正确的,直到现在还没有遇到过下面的。我认为这可能根本没有区别,但我认为我应该确定。两者之间有什么区别还是两种方式都等效?

4

2 回答 2

2

它们是等价的。

左括号很重要——它帮助解析器弄清楚接下来是函数表达式而不是函数声明

有关差异的解释,请参见http://kangax.github.com/nfe/

于 2012-05-09T10:55:57.107 回答
0

哦.......这只是为了好玩......


它们是相等的,但使用这种短路闭合方式代替:(Twitter 使用它!)

!function(){

}();

您将保存许多字符。每次1。


但我更喜欢使用我认为它更具可读性的这个:

(function(){

})();

比:

(function(){

}());
于 2012-05-09T10:57:05.320 回答