JavaScript-闭包

闭包概念

在JS中,变量的作用域属于函数作用域,在函数执行后作用域就会被清理、内存也随之回收,但是由于闭包是建立在一个函数内部的子函数,由于其可访问上级作用域的原因,即使上级函数执行完,作用域也不会随之销毁,这时的子函数——也就是闭包

形成: 函数中嵌套函数

作用: 函数内部调用外部变量、构造函数的私有属性、延长变量生命周期

优点: 希望一个变量长期存在内存中、模块化代码避免全局变量的污染、私有属性

缺点: 无法回收闭包中引用变量,容易造成内存泄漏

使用场景

  • ajax请求的成功回调
  • 事件绑定的回调方法
  • setTimeout的延时回调
  • 函数内部返回另一个匿名函数
  • 构造函数的私有属性
  • 计算缓存
  • 函数节流、防抖

你可能感兴趣的:(JavaScript学习,javascript)