2014-03-05 47 views
2

我認爲自己是一個非常強大的JavaScript編碼器,並且熟悉大多數JavaScript語法。但一直困惑的語法如下:javascript函數末尾的圓括號應該如何工作

function() { 
    return function() { 

    } 
}(); 

有人可以解釋什麼最後的括號應該用於?

+0

http://benalman.com/news/2010/11/immediately-invoked-function-expression/ – kojiro

回答

3

因此,表達式:

(function() { 
    return function() { 

    } 
}) 

計算結果爲函數(沒有在此情況下的名稱),該返回一些其他功能。

添加()

(function() { 
    return function() { 

    } 
})(); 

只會呼叫該功能。

另一種方式來寫,這將是:

var foo = function() { 
     return function() { 

     } 
    }; 

foo(); 
+0

所以它只是寫一個不同的方式與第三個示例相同的模式?好吧,我明白了。謝謝。很好的解釋。 – tonejac

+0

@tonejac - 正確。它更緊湊一點,因爲它不使用變量來引用剛創建的函數。它只是聲明它,然後立即調用它。 –

+0

好吧,連線現在在我的大腦中開始射擊,現在就讓人感覺完全合理!謝謝。 – tonejac

2

這是一個自我調用功能。意思是一個聲明和調用自己的函數。

另一種形式是:

(function() { 
    return function() { 
    } 
}()); 
相關問題