1.定义:闭包是在另一个函数(称为父函数)中定义的函数,并且可以访问在父函数作用域中声明和定义的变量。
2.缺点:污染全局变量
3.作用:实现公有变量(闭包读取的局部变量一直保存在内存中)
//实现公有变量(闭包读取的局部变量一直保存在内存中)
function add(){
var num = 0;
function fn(){
num++;
console.log(num);
}
return fn;
}
var suan = add();
suan();
//可以用做缓存
function test(){
var m = 100;
function a(){
m++;
console.log(m);
}
function b(){
m--;
console.log(m);
}
return [a,b];
}
var myArr = test();
myArr[0]();//等同于a() 101
myArr[1]();//等同于b() 100