闭包
外函数内部嵌套内函数,同时将内函数返回。
内部函数引入外部函数的变量及参数,不会被垃圾回收机制所收回
优点:
* 可以让一个变量长期驻扎在内存当中不被释放
缺点:
* 过度使用闭包,会占用过多的内存,造成性能问题
* 闭包内的变量不会被函数外使用到
example
function test(){
var num = 1;
num++;
console.log(num);
}
test();//2
test();//2
how about 闭包
function aa(){
var num = 1;
function bb(){
num++;
console.log(num);
}
return bb;
}
var res = aa();
res();2
res();3
//num在内存中没有释放