闭包的概念 闭包是 JS 的一种语法特性。 闭包 = 自由变量 + 函数 对于一个变量来说分为全局变量,局部变量,自由变量 怎么做?
let count
function add(){
count += 1
}
// 将此代码放入非全局变量中就是闭包
如何制造一个非全局变量?用立即执行函数
const add2 = function () {
var count
return function add() {
count += 1
}
}()
解决了什么问题?
- 避免污染全局变量
- 避免变量被垃圾回收
- 提供对变量的间接访问
优点 简单,好用 缺点 使用不当会造成内存泄漏 解决方法 少用,慎用