闭包就是能够读取其他函数内部变量的函数。
1、function a(){
var i=0function b(){
alert(++i);
}
return b();
}
var c=a();
c();
----------------------------------------------------------
2、 function counter(start){
var count=start;
return {
increment:function(){
count++;
},
get:function(){
return count;
}
};
};
var foo=counter(4);
foo.increment();
console.log(foo.get());
----------------------------------------------------------
3、 var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
console.log(this.name);
return function(){
console.log(this.name);
return this.name;
};
}
};
alert(object.getNameFunc()());
----------------------------------------------------------
4、 var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
var that = this;
return function(){
return that.name;
};
}
};
alert(object.getNameFunc()());
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html