Skip to content

闭包

闭包是函数保留其词法作用域链的能力,也就是一个函数跟其周围状态的引用捆绑在一起,这样的组合就是闭包

形成

  1. 函数嵌套: 内部函数定义在外部函数中
  2. 变量引用:内部函数使用外部函数作用域的变量
  3. 外部调用:内部函数被外部环境调用(如被返回作为回调)

核心作用

  • 变量封装:创建私有变量
  • 延长变量的生命周期: 让局部变量在函数执行后继续存活
  • 延迟执行:保存异步操作时的上下文
  • 函数工厂:动态生成定制函数

典型使用场景

  • 防抖、节流
  • 柯里化函数
  • 模块化开发,hook函数
  • 循环中的异步操作

注意事项

  • 内存管理:不再使用的闭包及时解除引用(如置为null)
  • 循环陷阱:避免所有闭包共享同一变量(可用立即执行函数或者let解决)
  • 性能考量:过度使用可能影响内存占用,引发内存泄漏问题

Released under the MIT License.