javascript匿名函数语法变体

时间:2012-05-09 10:54:53

标签: javascript syntax anonymous-function

  

可能重复:
  Location of parenthesis for auto-executing anonymous JavaScript functions?
  Are “(function ( ) { } ) ( )” and “(function ( ) { } ( ) )” functionally equal in JavaScript?

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

(function(){

})();

(function(){

}());

我一直认为最好的一个是正确的,直到现在才遇到过底部。我认为这可能没有任何区别,但我想我应该确定。这两者之间是否存在差异,或者两种方式是否相同?

2 个答案:

答案 0 :(得分:2)

他们是等同的。

左括号是重要的一点 - 它帮助解析器找出即将发生的函数表达式而不是函数声明

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

答案 1 :(得分:0)

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


他们是平等的,但改为使用这种缩短的封闭方式:( Twitter使用它!)

!function(){

}();

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


但我更喜欢使用这个我认为更可读的那个:

(function(){

})();

比:

(function(){

}());