闭包(Closure)是指在 JavaScript 中能够访问独立变量的函数,即使在该函数被在它创建时所在的词法作用域之外执行。简单来说,闭包允许函数访问其外部作用域的变量,即使这些变量在函数被调用时已经不再处于活动状态。

以下是一个简单的 JavaScript 闭包的例子:
function outerFunction() {
  var outerVariable = "I am from outer function";

  function innerFunction() {
    console.log(outerVariable);
  }

  return innerFunction;
}

// 创建一个闭包
var closure = outerFunction();

// 调用闭包,仍然能够访问 outerVariable
closure(); // 输出: "I am from outer function"

在上面的例子中,innerFunction 是一个闭包,因为它能够访问外部函数 outerFunction 中的变量 outerVariable。当 outerFunction 被调用时,它返回了 innerFunction,并且我们将其赋给了变量 closure。随后,调用 closure 时,它仍然能够访问 outerVariable 的值,即使 outerFunction 已经执行完毕。

闭包在 JavaScript 中有着广泛的应用,例如用于创建私有变量、实现模块模式、事件处理等。


转载请注明出处:http://www.pingtaimeng.com/article/detail/12815/JavaScript