IIFE

IIFE(立即執行函式表示式)是一種 JavaScript 函式 在定義後立即執行的模式。它也稱為自執行匿名函式。IIFE 這個名稱由 Ben Alman 在 他的部落格中推廣。

js
// standard IIFE
(function () {
  // statements…
})();

// arrow function variant
(() => {
  // statements…
})();

// async IIFE
(async () => {
  // statements…
})();

它包含兩個主要部分:

  1. 一個 函式表示式。這通常需要用括號括起來才能被正確解析。
  2. 立即呼叫函式表示式。可以提供引數,但沒有引數的 IIFE 更常見。

IIFE 是一種常用模式,用於在需要單個表示式的位置執行任意數量的語句(可能返回一個值),這些語句將在自己的作用域內執行。它們類似於,但比 逗號運算子 強大得多,逗號運算子只能執行多個表示式,因此無法使用區域性變數或控制流語句。

IIFE 的用例包括:

  • 透過建立新的 作用域 來避免汙染全域性名稱空間。
  • 建立新的非同步上下文,以便在非非同步上下文中 await
  • 計算具有複雜邏輯的值,例如將多個語句用作單個表示式。

有關程式碼示例,請參閱 function 表示式async function 表示式 參考頁面。

另見