什么是闭包?


1. 什么是闭包?

闭包是指函数和声明该函数的词法环境的组合。

换句话说,就是:

  • 当一个函数在其外部作用域之外被调用时,依然可以访问那个外部作用域里的变量。

2. 例子说明

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

const fn = outer(); // outer 执行,返回 inner 函数
fn(); // 输出 1
fn(); // 输出 2
  • inner 函数访问并修改了 outer 函数中的变量 count
  • 即使 outer 函数执行完了,count 变量依然被 inner 通过闭包“保存”着。

3. 关键点

  • 闭包使得函数可以记住并访问创建它时的作用域。
  • 允许私有变量和封装,支持模块化编程。
  • 但闭包也会导致变量不被垃圾回收,可能引起内存泄漏。

4. 总结一句话

闭包是函数和它定义时的环境的“打包”,使函数能访问定义它的作用域,即使函数在外部被调用。


节流和防抖

JavaScript 中常用的 **深拷贝 vs 浅拷贝 专业写法汇总

评 论
请登录后再评论