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 表达式 参考页面。

另见