第49关:神奇的闭包 (Closure) 🎒

XP: 0/100
🦸‍♂️

JS队长

闭包是 JS 中最酷的概念!

简单说:函数“记住”了它诞生时的环境。

即使外层函数已经执行完毕,内层函数依然可以访问外层函数的变量!就像背着一个专属背包!🎒

🐛

Bug捣蛋鬼

哼!函数执行完变量不就该销毁了吗?我要把内存清空!🗑️

🦸‍♂️

JS队长

这就是闭包的魔法!只要内层函数还存在,外层变量就不会被回收。

我们可以用它来做私有变量计数器

function createWallet() {
  let money = 0; // 私有变量,外部无法直接修改
  return function() {
    money += 1;
    return money;
  };
}

const myWallet = createWallet();
myWallet(); // 1
myWallet(); // 2
            

🎮 挑战:私有钱包

点击按钮往闭包里存钱。注意:外部无法直接修改余额,只能通过闭包函数!

0
Coins