所谓的“闭包”,就是在构造函数体内定义另外的函数作为目标对象的方法函数,而这个对象的方法函数反过来引用外层外层函数体中的临时变量。这使得只要目标对象在生存期内始终能保持其方法,就能间接保持原构造函数体当时用到的临时变量值。尽管最开始的构造函数调用已经结束,临时变量的名称也都消失了,但在目标对象的方法内却始终能引用到该变量的值,而且该值只能通这种方法来访问。
文字来源:
李战(leadzen)
http://www.cndev.org
http://www.cnblogs.com/leadzen
例子
var functionA = (function(){ var i = 0; return function(){ return i++; } })() alert(functionA());//0 alert(functionA());//1 alert(functionA());//2