2016-05-31 39 views
1

所以我有一個採訪,我問聲明和immideately調用函數的目的,我不能回答這個問題,即:的javascript:原因聲明和immedieatly調用內聯函數

(function(){ 

    // code 
})(); 

什麼這樣做的原因?

+0

封裝。函數具有它自己的範圍,從外部看不到。 – Georgy

+0

一般來說它是一個很好的做法,以避免污染全局範圍和具有的功能 – Vijaykrish93

+0

可能的複製的範圍內的所有參考文獻[什麼是(函數(){})()在JavaScript構建?](HTTP://計算器.COM /問題/ 8228281 /什麼 - 是 - 的 - 功能 - 結構 - 中的JavaScript) –

回答

3

Object-Oriented JavaScript - Second Edition:一個很好的即時(自調用)的應用程序的匿名功能 是當你想有一些工作,而無需創建額外的全局變量 完成。當然,缺點是你不能執行兩次相同的函數。這使得即時功能最適合於一次性 或初始化任務。

語法一開始可能看起來有點嚇人,但你所做的僅僅是 在括號內放置一個函數表達式,後面跟着另一個圓括號 。第二組表示,「現在執行」,也是 地方放任何參數,你的匿名函數可以接受:

(function() { 

})(); 

(function() { 

}()); 

是相同的: