示例
var add = (function(){
var counter = 0;
return function(){
return counter += 1;
}
})();
add();//1
add();//2
闭包其实就是函数A里的函数B,可以访问函数A中的变量。
之所以函数A执行完后,函数B还能访问函数A中的变量,是因为函数B持有了函数A中变量的引用,从而导致其无法释放。
而只有闭包能访问函数A中的变量,是因为该变量不是全局变量,其他对象也没有该变量的引用,所以无法指向该变量。
网友评论