码迷,mamicode.com
首页 > 其他好文 > 详细

寄生组合式继承

时间:2018-07-08 19:09:04      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:OLE   div   size   一个   call()   构造   cal   his   super   

实例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;//把上边的两个函数合并函数公用一个构造函数

寄生组合式继承

标签:OLE   div   size   一个   call()   构造   cal   his   super   

原文地址:https://www.cnblogs.com/jokes/p/9280802.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!