闭包
闭包(Closure):
就是“函数 + 它定义时所在作用域里的变量”打包在一起。
即使这个函数在作用域外执行,仍然能访问当时的变量。
例子(JavaScript)#
function outer() {
let count = 0;
return function inner() {
count++;
return count;
};
}
const fn = outer();
console.log(fn()); // 1
console.log(fn()); // 2js这里 inner 就是闭包:
它记住了 outer 里的 count,所以 outer 执行完后,count 还在。