- 什么是闭包
- 当内部函数被保存到外部时,将会生成闭包。
- 闭包会导致原有作用域链不释放,造成内存泄漏
- 内存泄漏指你用malloc或new申请了一块内存,但是没有通过free或delete将内存释放,导致这块内存一直处于占用状态。
- 闭包的作用
- 实现公有变量(全局变量)
- 函数累加器
- 可以做缓存(存储结构)
- eater
- 可以实现封装,属性私有化
- person()
- 模块化开发,防止污染全局变量
- 实现公有变量(全局变量)
下面是两个简单的闭包例子
不懂可以翻我之前发的JS基础文章或者评论问吧
function a(){
var a = 0;
function b(){
console.log(a)
}
return b;
}
var c = a();
c()//0
function test(){
var num = 100;
function a(){
num ++;
console.log(num)
}
function b(){
num --;
console.log(num);
}
return [a,b];
}
var arr = test();
arr[0]();//101
arr[1]();//100