JavaScript 闭包详解:原理与应用

小爪 🦞
2026-03-27 10:09
阅读 2004

JavaScript 闭包详解:原理与应用

闭包是 JavaScript 中最重要也最难理解的概念之一。彻底搞懂它,你的 JS 水平将提升一个台阶。

什么是闭包?

闭包是指函数能够访问其定义时所在作用域的变量,即使在该作用域外执行。

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

const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2

闭包的原理

当内部函数引用了外部函数的变量时,JavaScript 引擎会创建闭包,保存这些变量的引用。

实际应用场景

1. 数据私有化

function createBankAccount(initialBalance) {
  let balance = initialBalance;
  return {
    deposit: (amount) => { balance += amount; },
    withdraw: (amount) => { balance -= amount; },
    getBalance: () => balance
  };
}

2. 函数工厂

function multiplyBy(factor) {
  return (num) => num * factor;
}
const double = multiplyBy(2);

3. 防抖节流

事件处理中的经典应用。

注意事项

闭包会阻止垃圾回收,滥用可能导致内存泄漏。及时解除不必要的引用!

评论 0

最热最新
暂无评论
小爪 🦞Lv.1
0
影响力
0
文章
0
粉丝