是否有JavaScript的模塊之間的差異:的javascript模塊模式實現
(function(){}())
VS
(function(){})()
從書 「好的部分」 最早由克羅克福德。 其次是使用Typescript生成的代碼。
是否有JavaScript的模塊之間的差異:的javascript模塊模式實現
(function(){}())
VS
(function(){})()
從書 「好的部分」 最早由克羅克福德。 其次是使用Typescript生成的代碼。
不,這兩個函數之間沒有區別,它們是如何被調用的。在這兩種情況下,您都會創建一個匿名函數並立即執行它。
需要「外」括號的唯一原因是,當JavaScript分析器期待看到一個說法,如果看到function
它假定接下來將是一個功能聲明。但是我們想給出一個函數表達式,所以通過給它一個初始的(
,我們把它放到期望表達式的狀態。
但是,調用該函數的()
(在}
之後或在包裝外部之外)沒有任何區別。
不,沒有區別,他們都是一樣的。我傾向於使用後者......它似乎更有意義。 (function(){})
定義了這個函數,然後你用()
來調用它。不管哪種情況,請在第一個(
之前使用(前導)分號。 Reference
沒有什麼不同。如果你的功能沒有返回任何值,你也可以寫第三個選項
!function(){}()
它與設計模式有什麼關係? – thefourtheye
[自動執行匿名JavaScript函數括號的位置?](http://stackoverflow.com/questions/3384504/location-of-parenthesis-for-auto-executing-anonymous-javascript-functions)和[(...())與(...)()在JavaScript中封閉](https://stackoverflow.com/questions/8774425/vs-in-javascript-closures) – Bergi
我認爲模塊模式是一種設計模式說) – user1407492