IIFE (即時実行関数式)
IIFE (Immediately Invoked Function Expression; 即時実行関数式) は、定義されるとすぐに実行される JavaScript の関数のイディオムです。これは「自己実行無名関数」としても知られています。IIFE という名前は Ben Alman のブログで付けられました。
js
// 標準的な IIFE
(function () {
// 文…
})();
// アロー関数形式
(() => {
// 文…
})();
// 非同期 IIFE
(async () => {
// 文…
})();
これは 2 つの重要な部分を含んでいます。
IIFE は、単一の式が要求される場所で、独自のスコープ内で任意の多数の文を実行する(場合によって値を返す)ために使用される一般的なパターンです。これらはカンマ演算子と似ていますが、カンマ演算子は複数の式を実行することしかできず、ローカル変数や制御文を使用する方法が提供されていないため、IIFE のほうがはるかに強力です。
IIFE の主な用途には、次のようなものがあります。
- 新しいスコープを作成することにより、グローバル名前空間の汚染を防ぐ。
- 非同期でないコンテキストで
awaitを使用するために、新しい非同期コンテキストを作成する。 - 複数の文を単一の式として使用するなど、複雑なロジックを用いた値の計算。
コードの例については、function 式および async function 式のリファレンスページをご覧ください。
関連情報
- 即時実行関数式 (IIFE)(ウィキペディア)
- カンマ演算子
- 関連用語: