zoukankan      html  css  js  c++  java
  • 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里一切对象的关系

    每日让自己精进一些

    不知不觉

    就能走很远

  • 相关阅读:
    SOA the new OOP?
    请教一个程序装入执行的问题!
    程序员,如何选择合适的程序语言
    题解 P2387 【[NOI2014]魔法森林】
    题解 P4197 【Peaks】
    货车运输
    线段树合并
    jvm系列五java内存模型(2)
    jvm系列一什么是jvm
    jvm系列二内存结构
  • 原文地址:https://www.cnblogs.com/AlexNull/p/4794294.html
Copyright © 2011-2022 走看看