这三种形式的自我调用匿名函数有什么区别?

时间:2013-01-12 15:13:02

标签: javascript function self-invoking-function

  

可能重复:
  Are “(function ( ) { } ) ( )” and “(function ( ) { } ( ) )” functionally equal in JavaScript?

我正在阅读下面的文件。

http://addyosmani.com/resources/essentialjsdesignpatterns/book/#patternity

当我查看这些示例时,自动调用匿名函数有三种形式。

一个是

(function() {
    //do something
})();

而另一个是

function() {
    //do something
}();

而另一个是

(function() {
    //do something
}());

这三种形式之间有什么区别?

感谢您的阅读!

2 个答案:

答案 0 :(得分:6)

第一个和最后一个实际上完全相同。差异是风格问题。

第二个是不安全的(取决于它在哪里)它可能是一个函数声明而不是一个函数表达式,你不能立即调用一个函数声明。

答案 1 :(得分:1)

诉讼功能无效语法:

function() {
    //do something
}();