9

可能重复:
“(function ( ) { } ) ( )” 和 “(function ( ) { } ( ) )” 在 JavaScript 中的功能是否相同?

我正在阅读下面的文档。

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

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

一个是

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

另一个是

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

另一个是

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

这三种形式有什么区别?

感谢您的阅读!

4

2 回答 2

6

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

第二个是不安全的,因为(取决于它的位置)它可能是函数声明而不是函数表达式,并且您不能立即调用函数声明。

于 2013-01-12T15:14:41.700 回答
1

进行中的函数不是有效的语法:

function() {
    //do something
}();
于 2013-01-12T15:15:55.547 回答