2016-05-31 2 views
1

インライン関数を呼び出すための理由は、だから、私は宣言しimmideately関数を呼び出すの目的を求めていたインタビューを持っていた、と私はそれに答えることができなかった、すなわち:のjavascript:宣言しimmedieatly

(function(){ 

    // code 
})(); 

何これを行う理由は?

+0

カプセル化。機能には、外部からは見えない独自のスコープがあります。 – Georgy

+0

一般的には、グローバルスコープの汚染を避け、関数スコープ内のすべての参照を持つことをお勧めします。 – Vijaykrish93

+0

[JavaScriptの(function(){})()構文とは何か?](http:// stackoverflow .com/questions/8228281/what-is-the-function-construct-in-javascript) –

答えて

3

Object-Oriented JavaScript - Second Edition:あなたはいくつかの作業は、余分なグローバル 変数を作成せずに行っているしたい場合は即時(自己呼び出し)の一つの良いアプリケーション匿名関数 です。もちろん、同じ 関数を2回実行することができないという欠点があります。これにより、一度限りのオフフック または初期化タスクに最適な即時機能が実現します。

構文は、最初は少し怖いかもしれませんが、あなたがすべてでは単に別続く括弧内の関数式は、括弧の 設定 場所です。第2のセットは、「今すぐ実行」と言うと、あなたの匿名関数が受け入れる可能性がある任意の引数を置く 場所です:

(function() { 

})(); 

または

(function() { 

}()); 

は同じです: