glownight

返回

闭包(Closure)
就是“函数 + 它定义时所在作用域里的变量”打包在一起。
即使这个函数在作用域外执行,仍然能访问当时的变量。

例子(JavaScript)#

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

const fn = outer();
console.log(fn()); // 1
console.log(fn()); // 2
js

这里 inner 就是闭包:
它记住了 outer 里的 count,所以 outer 执行完后,count 还在。