JavaScript继承-借用构造函数继承

Posted 好多坨屎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript继承-借用构造函数继承相关的知识,希望对你有一定的参考价值。

借用构造函数继承是在子类型构造函数的内部调用超类型狗在函数,通过使用apply()和call()方法

    function girlFriend(){
        this.girls = [‘chen‘,‘wang‘,‘zhu‘];
    }
    function Person(){
        girlFriend.call(this,20);
    }
    var wang = new Person();
    var zhu = new Person();
    wang.girls.push(‘zhang‘);
    console.log(wang.girls);    //(4) ["chen", "wang", "zhu", "zhang"]
    console.log(zhu.girls);        //(3) ["chen", "wang", "zhu"]

通过以上代码,我们可以发现,在原型链继承中出现的问题不再出现了,这个超类不会被子类所创建的实例共享了。

借用构造函数继承的优势是可以在子类型构造函数中向超类型构造函数传递参数,例如以下代码:

    function SuperType(name){
        this.name = name;
    }
    function SubType(){
        SuperType.call(this,"nick");
        this.age = 20;
    }
    var instance = new SubType();
    console.log(instance.name);        //nick
    console.log(instance.age);        //20

以上是关于JavaScript继承-借用构造函数继承的主要内容,如果未能解决你的问题,请参考以下文章

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

JavaScript构造函数+原型创建对象,原型链+借用构造函数模式继承父类练习

js组合继承(原型继承+借用构造函数继承)

JavaScript继承的6种方式

JavaScript继承的几种方法

js继承之组合继承(结合原型链继承 和 借用构造函数继承)