立即执行的函数表达式(IIFE,Immediately Invoked Function Expression)

4 min read

立即执行的函数表达式(IIFE,Immediately Invoked Function Expression)是一种在定义时立即执行的匿名函数。它的形式如下:


(function () {
  // 函数体
})();

在这个例子中,函数是包含在一对圆括号内的,然后立即执行的。

立即执行的函数表达式常用来创建局部作用域,避免变量污染全局作用域。它还可以用来封装代码,提高代码的可维护性和可重用性。

例如,假设你想要创建一个计数器,在每次调用时都会增加计数器的值:


let counter = (function () {
  let count = 0;
  return function () {
    return count++;
  }
})();

console.log(counter());  // 0
console.log(counter());  // 1
console.log(counter());  // 2

在这个例子中,函数 counter 返回了一个匿名函数,每次调用时都会增加变量 count 的值。因为 count 变量是在立即执行的函数表达式中定义的,所以它不会污染全局作用域。