什么是闭包?
闭包是指函数能够访问并记住其词法作用域,即使该函数在其作用域之外执行。通俗来说,闭包让函数可以“抓取”到它创建时所处的环境。
例如:
function outer() {
let counter = 0;
return function inner() {
counter++;
console.log(counter);
};
}
const increment = outer();
increment(); // 1
increment(); // 2
闭包的作用?
- 🔄 数据封装:保护变量不被外部直接修改
- 📦 维持函数状态:在回调函数中保持上下文环境
- 🎯 创建私有变量:通过闭包实现模块化编程
闭包的使用场景?
- ✅ 计数器实现
- ✅ 懒加载函数
- ✅ 数据缓存优化
- ✅ 函数工厂模式
闭包示意图
扩展阅读
想要深入了解函数作用域?可以查看JavaScript函数作用域详解。