什么是闭包?有哪些内存泄露的场景?

7 阅读1分钟

1.闭包是指函数在创建时保留了对其定义作用域的引用。

闭包在javascript的最常见形式是函数嵌套函数,內部函数访问外部函数的变量。

function outerFunction(){
  let counter  = 0

  return function innterFunction(){
     counter ++
     console.log(counter)
  }

}

const increment = outerFunction()
increment() // 1
increment() // 2

2 闭包导致的内存泄露的场景

a、 未清理的事件监听

b、 引入变量的定时器没有清理

c、 循环引用