先来解释一下闭包:
1.闭包就是函数嵌套函数
2.内部函数可以引用外部函数的参数和变量
3.参数和变量不会被垃圾回收机制所收回( 垃圾回收机制就是用完变量之后就在内存中释放 )
使用闭包的好处:
1.希望一个变量长期驻扎在内存当中
2.避免全局变量的污染
3.私有成员的存在
闭包的用法:
1.模块化代码
我们看一个闭包小实例 :
function aa(){
var a = 5;
// 函数中嵌套函数
function bb(){
a++;
// 内部函数可以引用外部函数的参数和变量
alert(a);
}
return bb;
}
var c = aa();
c(); // 结果是2
c(); // 结果是3 变量不会被垃圾回收机制所收回,意思就是变量还在内存里,变量还可以累加
再写一个模块化代码:
var aa = (function(){
var a = 1;
function bb(){
//访问函数外部的变量
a++;
alert(a);
}
//现在 a 还存在了内存里,此时 a 变成了2
function cc(){
a++;
alert(a); // a 累加就变成 3
}
return {
b:bb,
c:cc
}
})()
aa.b(); // 2
aa.c(); // 3
javascript 闭包笔记,布布扣,bubuko.com
原文:http://www.cnblogs.com/zion0707/p/3889360.html