什么是闭包?

闭包是指函数能够访问并记住其词法作用域,即使该函数在其作用域之外执行。通俗来说,闭包让函数可以“抓取”到它创建时所处的环境。

例如:

function outer() {
  let counter = 0;
  return function inner() {
    counter++;
    console.log(counter);
  };
}

const increment = outer();
increment(); // 1
increment(); // 2

闭包的作用?

  • 🔄 数据封装:保护变量不被外部直接修改
  • 📦 维持函数状态:在回调函数中保持上下文环境
  • 🎯 创建私有变量:通过闭包实现模块化编程

闭包的使用场景?

  • ✅ 计数器实现
  • ✅ 懒加载函数
  • ✅ 数据缓存优化
  • ✅ 函数工厂模式

闭包示意图

闭包_示意图

扩展阅读

想要深入了解函数作用域?可以查看JavaScript函数作用域详解