美文网首页前端杂货随记
javascript继承之构造函数继承(二)

javascript继承之构造函数继承(二)

作者: 程序蜗牛 | 来源:发表于2018-02-04 19:07 被阅读1次

    构造函数继承也就是也用构造函数,也可以说是伪造对象或经典继承
    思想很简单:在子类型构造函数的内部调用超类型构造函数

    • 创建构造函数
    function Car(master,color){
        this.master = master;
        this.color = color;
    }
    # 创建原型链方法
    Car.prototype.changeColor = function(color){
        this.color = color;
    }
    
    • 创建Audi子构造函数,并且继承Car构造函数
    function Audi(){
        Car.apply(this,arguments);
    }
    
    • 创建Audi原型链方法
    Audi.prototype.getMessage = function(){
        return this.master + "有一辆"+this.color+"的奥迪";
    }
    
    • 实例继承测试
    var car1 = new Audi("car1Master","黑色");
    var car2 = new Audi("car2Master","白色");
    console.log(car1.getMessage());
    // 结果:car1Master有一辆黑色的奥迪
    
    console.log(car2.getMessage());
    // 结果:car2Master有一辆白色的奥迪
    

    注意:Car超类构造函数的原型有一个changeColor方法,Audi继承了Car,那么对于Audi来说,原型的方法是不可见的,因此函数的复用就无从谈起了

    好处:对于原型链继承来说,构造函数继承可以向超类构造函数中传递参数

    相关文章

      网友评论

        本文标题:javascript继承之构造函数继承(二)

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