zoukankan      html  css  js  c++  java
  • JavaScript高级程序设计之寄生组合式继承

    在继承中常会出现两个问题:

        父类的属性变成了子类的原型

        构造器指向混乱

    寄生组合式继承解决了这样的问题:

        属性继承到属性

        原型继承到原型

        构造器指向明确

    // 父类
    var Super = function(name) {
        this.name = name;
        this.friends = ["lily", "meimei"];
    };
    
    Super.prototype.sayName = function() {
        console.log(this.name);
    };
    
    // 子类
    var Sub = function(name, age) {
    
        // 属性归到属性
        Super.call(this, name);
        this.age = age;
    };
    
    // 原型归到原型
    Sub.prototype = Super.prototype;
    
    // 明确构造器
    Sub.prototype.constructor = Sub;
    
    Sub.prototype.sayAge = function() {
        console.log(this.age);
    };
    
    
    var sup1 = new Super("lucy", 18);
    var sub1 = new Sub("lily", 20); 
    
    sub1.friends.push("poly");
    
    var sub2 = new Sub("poly", 2);
  • 相关阅读:
    P4168 [Violet]蒲公英
    P3320 [SDOI2015]寻宝游戏
    P2487 [SDOI2011]拦截导弹
    P3338 [ZJOI2014]力(FFT)
    P1975 [国家集训队]排队
    P4103 [HEOI2014]大工程
    虚树小结
    LVS初步
    常见指针定义解读
    可epoll队列
  • 原文地址:https://www.cnblogs.com/xiankui/p/3757682.html
Copyright © 2011-2022 走看看