js:闭包续

上一遍文章,主要研究了闭包的定义和表现形式,这次我们来聊聊他的应用场景

回顾一下,闭包有两个作用:

1.维持局部变量不被GC

2.使局部变量能够在外部被访问

由于接触过java,可以很自然地联想到,用闭包来模拟private method/variable

我们老套一些,写一个People的constructor

function People(a){
    var age = a;
   this.getOlder = function(){
    age++;
   }
this.returnAge = function(){ return age; } }
var p1 = new People(20);
var p2 = new People(40);
p1.age;//undefined
p2.age;//udefined
p1.getOlder();
p2.getOlder();
p1.returnAge(); //21
p2.returnAge(); //41

借助闭包,我们可以让:

this.xxx - public

var xxx - private

更常见的情况是,我们可以在函数里return{func1:function(){},func2:function(){},func3:function(){}...}这样一个匿名对象来做很多事

然而仅有个模糊的认识,掌握写法,终难究其本质

之后需要研究下 原型/原型链,函数/构造函数 与 js里一切对象的关系

每日让自己精进一些

不知不觉

就能走很远

 

posted @ 2015-09-09 12:29  Alex_Null  阅读(132)  评论(0)    收藏  举报