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

9

可能是重复问题:
在JavaScript中,“(function ( ) { } ) ( )”和“(function ( ) { } ( ) )”在功能上等效吗?

我正在阅读下面的文档。

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

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

其中一种是

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

另一个是

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

另外一个是

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

这三种形式有什么不同?
感谢您的阅读!

3
如果单独存在,第二个会是语法错误。 - Felix Kling
2个回答

6

第一个和最后一个实际上是完全相同的,不同之处在于风格。

第二个不安全,因为(取决于其位置)它可能是一个函数声明而不是函数表达式,而你无法立即调用函数声明。


1

该函数不是有效的语法:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接