关于闭包
闭包的概念: 当有对函数执行环境中定义的变量的引用时,该函数执行环境不会销毁,函数内定义的变量会占据内存
闭包的优点: 可以将全局变量放入函数中,可以避免在全局定义的变量过多的占用内存
闭包的缺点: 当引用一直存在时,函数执行环境永远不会销毁,造成过多占用内存
闭包的使用: 当使用闭包时,要时刻注意引用关系是否会一直存在,必要时需手动释放内存
var i = 1
function fn() {
i = i + 1
console.log(i)
}
fn() // 2
fn() // 3
fn() // 4
// 使用闭包后
function fn(){
var i = 1
var bn = () =>{
i = i + 1
console.log(i)
return bn
}
return bn
}
fn()()()() // 2 // 3 // 4
// 将全局变量放入了函数中,减少了内存占用,函数执行完,不存在引用关系,内存被回收