JS的闭包是什么?怎么做?

80 阅读1分钟

闭包的概念 闭包是 JS 的一种语法特性。 闭包 = 自由变量 + 函数 对于一个变量来说分为全局变量,局部变量,自由变量 怎么做?

let count 
function add(){
  count += 1
}
// 将此代码放入非全局变量中就是闭包

如何制造一个非全局变量?用立即执行函数

const add2 = function () {
  var count
  return function add() {
    count += 1
  }
}()

解决了什么问题?

  1. 避免污染全局变量
  2. 避免变量被垃圾回收
  3. 提供对变量的间接访问

优点 简单,好用 缺点 使用不当会造成内存泄漏 解决方法 少用,慎用