2013-01-12 38 views
9

可能重複:
Are 「(function () { }) ()」 and 「(function () { } ())」 functionally equal in JavaScript?這三種形式的自我調用匿名函數有什麼區別?

我在閱讀下面的文檔。

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

當我看到,雖然這些例子中,一個匿名函數自調用有三種形式。

的一個是

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

,另一個是

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

,另一個是

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

什麼是這三種形式之間的差別?

謝謝您的閱讀!

+3

第二個是一個語法錯誤,如果它是獨一無二的。 –

回答

6

第一個和最後一個是完全相同的。差異是一個風格問題。

第二種是不安全的(取決於它是),因爲它可以是一個函數聲明代替的函數表達,並且不能立即調用函數聲明。

1

的行動功能是無效的語法:

function() { 
    //do something 
}(); 
相關問題