2013-04-07 33 views
2

意味着什麼這種結構在JavaScript:拿什麼建設(函數(){...})()

(function(){ 
     alert("bla"); 
    })(); 

+4

[立即調用函數表達式(http://benalman.com/news/2010/11/immediately-invoked-function-表情/) – Rikonator 2013-04-07 07:50:20

+0

那麼..至少我知道我是對的,我猜...應該已經發布了。 – Daedalus 2013-04-07 07:50:52

+0

或「[javascript中自動執行函數的目的是什麼?](http://stackoverflow.com/questions/592396/what-is-the-purpose-of-a-self-executing-function-in- JavaScript的)」 – dequis 2013-04-07 07:54:42

回答

2

這是一個匿名塊 - 聲明一個匿名函數,然後立即執行它,這意味着塊中聲明的任何變量都不在其外面看到。在alert()的情況下,它沒有區別。

2

這裏之後,你定義要立即執行的匿名函數excecuted。

函數聲明被表示爲一個函數表達式,它可能是匿名的並返回新創建的函數的值。它返回新創建的函數的值,所以通過在其後面添加括號,可以立即調用它。

5

此模式的首字母縮寫是「IIFE」或立即調用的函數表達式。

它基本上創建匿名函數function(){}

function(){alert("bla");} 
然後

包裝它作爲表達()

(function(){alert("bla");}) 

然後執行它()

(function(){alert("bla");})() 

請注意,在這一點上,你可以傳遞參數,以及這樣的:

(function(text){alert(text);})("bla")