javascript函数闭包
闭包也就是让一个函数返回值是一个函数,而返回的这个函数里边,有该函数内的变量,它不会随着包含它的函数消失而消失,而是被保留了下来。
有两点需要注意,其一这个变量的值会递增,好似对象的方法在引用当中的对象属性
1 function f(){ 2 var x=12; 3 return function(){ 4 x+=5; 5 return x; 6 }; 7 } 8 var a=f(); 9 10 alert(a()+':'+a()); 11 12 //显示17:22
其次,再次调用主函数时,返回的函数,用到的主函数变量,又是新的一个,从12开始;
这又好像另一个对象
1 function f(){ 2 var x=12; 3 return function(){ 4 x+=5; 5 return x; 6 }; 7 } 8 var a=f(); 9 var b=f(); 10 alert(a()+':'+b());//都等于17,而不是17跟22