--- title: IIFE (即時実行関数式) slug: Glossary/IIFE tags: - CodingScripting - DesignPattern - Functions - Glossary - JavaScript - デザインパターン - 用語集 - 関数 translation_of: Glossary/IIFE ---
IIFE (Immediately Invoked Function Expression; 即時実行関数式) は定義されるとすぐに実行される {{glossary("JavaScript")}} の {{glossary("function", "関数")}} です。
(function () { 文 })();
このデザインパターンは{{glossary("Self-Executing Anonymous Function", "自己実行無名関数")}}とも呼ばれ、次の2つの主な部分から成ります。
()
に囲まれた静的スコープ付きの無名関数です。これは IIFE イディオム内で、汚いグローバルスコープと同様に変数へアクセスすることを防ぎます。()
で、これを通じて JavaScript エンジンは直接関数を解釈実行します。この関数は即時実行される関数式になります。関数式内の変数は外部からアクセスできません。
(function () { var aName = "Barry"; })(); // 変数 aName はスコープ外からアクセスできません aName // "Uncaught ReferenceError: aName is not defined" が発生します
IIFE を変数に代入することはその結果だけが保存されます。
var result = (function () { var name = "Barry"; return name; })(); // Immediately creates the output: result; // "Barry"