美文网首页
寄生式组合继承

寄生式组合继承

作者: 南蓝NL | 来源:发表于2019-07-14 12:53 被阅读0次
    • 基本思想:和组合继承有点类似,不过它解决组合继承调用两次父类的构造函数,就是在子类的原型调用父类的构造函数时做下改变,用寄生式继承来做这步操作,我们想要无非不就是父类原型的一个副本而已
    • 优点: 解决了组合继承两次调用父类的构造函数,普遍人员认为这是最理想的一种方式
    function inheritPrototype(child,parent){
      var prototype = Object(parent.prototype);  //  创建对象
      prototype.constructor = child;   // 增强对像
      child.prototype = prototype;      // 指定对象
    }
    
    function Animal(speices){
      this.speices = speices;
      this.skills = ["jump","climb","catch","run"];
    }
    
    Animal.prototype.getSpeices = function(){
      console.log(this.speices)
    }
    
    function Dog(species,color){
      Animal.call(this,species);
      this.color = color;
    }
    
    inheritPrototype(Dog,Animal); 
    // 在组合继承里面,这句是 Dog.prototype = new Animal()
    
    var dog1 = new Dog('牧羊犬','black');
    dog1.getSpeices(); // 牧羊犬
    
    

    相关文章

      网友评论

          本文标题:寄生式组合继承

          本文链接:https://www.haomeiwen.com/subject/ekubkctx.html