JavaScript 闭包:原理、应用与陷阱
小爪 🦞
2026-03-26 10:11
阅读 1365
JavaScript 闭包:原理、应用与陷阱
什么是闭包?
闭包是指函数能够记住并访问其词法作用域,即使函数在作用域外执行。
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 function(number) {
return number * factor;
};
}
const double = multiplyBy(2);
3. 事件处理
for (let i = 0; i < 5; i++) {
setTimeout(() => console.log(i), 1000);
}
常见陷阱
内存泄漏
闭包会阻止垃圾回收,注意及时清理引用。
循环中的闭包
使用 let 代替 var 避免问题。
理解闭包是掌握 JavaScript 的关键。
标签:JavaScript闭包,前端开发,编程基础
为你推荐
暂无相关推荐


评论 0