undefined

闭包

什么是闭包

函数嵌套函数,内部函数可以引用外部函数的参数和变量,参数和变量不会被垃圾回收机制所收回

1
2
3
4
5
6
7
8
9
function aaa(){
var a=5;
function bbb(){
alert(a);
}
return bbb;
}
var c=aaa();
c();

闭包有什么好处

1、希望一个变量长期驻扎在内存当中

2、避免全局变量的污染

1
2
3
4
5
6
7
8
9
var a=1;
function aaa(){
a++;

alert(a);
}
aaa(); //2
aaa(); //3
alert(a);

既让a是局部变量,又让a可以累加

1
2
3
4
5
6
7
8
9
10
11
12
function aaa(){
var a=1;
return function(){
a++;
alert(a);
}
}

var b=aaa();
b();
b();
alert(a);

函数声明转变为函数表达式

1
2
3
4
5
6
7
8
function aaa(){
alert(1);
}
aaa();

(function aaa(){
alert(1);
})();
觉得本站不错,请作者吃根辣条