为你而来

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

 

posted on 2012-06-02 21:01  为你而来  阅读(188)  评论(0编辑  收藏  举报

导航