JavaScript组合继承的实现

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

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

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

实例

functionA(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
this.arrs=[1,2,3]
};
A.prototype.sayName=function(){
returnthis.name
}
functionB(name,age,sex){
A.apply(this,arguments)
}
B.prototype=newA();
Object.defineProperty(B.prototype,"constructor",{
enumerable:false,
value:B
})
letC1=newB('C1',18,'male');
letC2=newB('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

原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容