什么是闭包?
trycoding.fun

什么是闭包?

理解闭包及其实际应用

问题

什么是 JavaScript 中的闭包?它是如何工作的?有哪些使用场景?

答案

闭包是指一个函数能够访问其外部(包围)函数作用域中的变量,即使外部函数已经返回。

闭包的工作原理

function outerFunction() {
  const outerVariable = '我来自外部作用域';
  
  function innerFunction() {
    console.log(outerVariable); // 可以访问 outerVariable
  }
  
  return innerFunction;
}

const closure = outerFunction();
closure(); // 输出: "我来自外部作用域"

常见使用场景

  1. 数据私有化 / 封装
  2. 函数工厂
  3. 状态维护
  4. 事件处理器

关键点

  • 闭包会”记住”它们被创建时的环境
  • 它们提供了一种创建私有变量的方式
  • 在循环中使用闭包时要小心(使用 let 而不是 var