闭包是 JS 中最酷的概念!
简单说:函数“记住”了它诞生时的环境。
即使外层函数已经执行完毕,内层函数依然可以访问外层函数的变量!就像背着一个专属背包!🎒
哼!函数执行完变量不就该销毁了吗?我要把内存清空!🗑️
这就是闭包的魔法!只要内层函数还存在,外层变量就不会被回收。
我们可以用它来做私有变量和计数器!
function createWallet() {
let money = 0; // 私有变量,外部无法直接修改
return function() {
money += 1;
return money;
};
}
const myWallet = createWallet();
myWallet(); // 1
myWallet(); // 2
点击按钮往闭包里存钱。注意:外部无法直接修改余额,只能通过闭包函数!