寄生组合式继承

Posted jokes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了寄生组合式继承相关的知识,希望对你有一定的参考价值。

实例1:

function SuperType(name){
        this.name = name;
        this.colors = [‘red‘,‘green‘,‘blue‘];
    }

    SuperType.prototype.sayName = function(){
        console.log(this.name);
    }
    
    function SubType(name,age){
        SuperType.call(this,name);
        this.age = age;    
    }
    
    function inheritPrototype(SubType,SuperType){
        SuperType.prototype.constructor = SubType;//把上边的两个函数合并
        SubType.prototype = SuperType.prototype;
    }
    /**
        公用的构造函数
        function SubType(name,age){
            this.name = name;
            this.colors = [‘red‘,‘green‘,‘blue‘];
            this.age = age;    
        }

    */
    inheritPrototype(SubType,SuperType);

    SubType.prototype.sayAge = function(){
        console.log(this.age);
    }

    var p1 = new SubType(‘zhangsan‘,89);
    p1.sayName();
    p1.sayAge();
    console.log(p1.colors);
    console.log(p1);

这个是利用call()和SuperType.prototype.constructor = SubType;//把上边的两个函数合并函数公用一个构造函数

以上是关于寄生组合式继承的主要内容,如果未能解决你的问题,请参考以下文章

JS手写面试题 --- 寄生组合继承

JSJavaScript继承 - 原型链 - 盗用构造函数 - 组合继承 -原型式继承 - 寄生式继承 - 寄生式组合继承

寄生组合继承

Javascript继承6:终极继承者----寄生组合式继承

JavaScript继承基础讲解,原型链借用构造函数混合模式原型式继承寄生式继承寄生组合式继承

JavaScript之原型式继承&寄生式继承和寄生组合式继承以及优缺点