IIFE (即時実行関数式)

IIFE (Immediately Invoked Function Expression; 即時実行関数式) は定義されるとすぐに実行される JavaScript関数 です。

(function () {
    文
})();

このデザインパターンは自己実行無名関数とも呼ばれ、2つの主要な部分から成ります。最初のものは グループ化演算子 () に囲まれた静的スコープ付きの無名関数です。これは IIFE イディオム内で、汚いグローバルスコープと同様に変数へアクセスすることを防ぎます。

2つ目の部分は即時実行関数式の () で、これを通じて JavaScript エンジンは直接関数を解釈実行 (interpret)します。

この関数は即時実行される関数式になります。関数式内の変数は外部からアクセスできません。

(function ( {
    var aName = "Barry";
)();
// 変数名はスコープ外からアクセスできません
aName // "Uncaught ReferenceError: aName is not defined" を投げます

IIFE を変数に代入することはその結果だけが保存されます。

var result = (function () {
    var name = "Barry"; 
    return name; 
})(); 
// Immediately creates the output: 
result; // "Barry"