文章 > JavaScript > JavaScript组合继承的实现

JavaScript组合继承的实现

javascript 组合继承

小妮浅浅

2021-10-22 10:09:06408浏览 · 0收藏 · 0评论

1,组合继承综合了原型链和盗用构造函数,将两者的优点集中了起来。既可以把方法定义在原型上以实现重用,又可以让每个实例都有自己的属性。

2,过程中调用两次父类构造函数。

一次是子构造函数使用apply/call调用的父构造函数,另一次是子类使用原型继承时,父类实例赋给子类的原型对象时调用的父类构造函数

实例

function A(name,age,sex){
    this.name = name;
    this.age = age;
    this.sex = sex;
    this.arrs = [1,2,3]
};
A.prototype.sayName = function(){
    return this.name
}
function B(name,age,sex){
    A.apply(this,arguments)
}
B.prototype = new A();
Object.defineProperty(B.prototype,"constructor",{
    enumerable:false,
    value:B
})
let C1 = new B('C1',18,'male');
let C2 = new B('C2',18,'female');
console.log(C1.sayName());     //"C1"
C1.arrs.push(4);
console.log(C1.age,C1.sex,C1.arrs);    //18,'male',[1,2,3,4]
console.log(C2.sayName());     //"C2"
console.log(C2.age,C2.sex,C2.arrs);    //18,'female',[1,2,3]

以上就是JavaScript组合继承的实现,希望对大家有所帮助。更多Javascript学习指路:Javascript

推荐操作环境:windows7系统,jquery3.2.1版本,DELL G3电脑。

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

Baidu