JS中的继承机制

来源:互联网 发布:淘宝 店招 代码 编辑:程序博客网 时间:2024/05/18 01:11

我昨天学习了JS中的两种继承机制:组合继承和寄生式组合继承

组合继承是通过原型链实现对原型属性和方法的继承,通过借用构造函数实现对实例属性的继承

寄生组合式继承是通过原型链的混成形式实现对方法的继承,通过借用构造函数实现对属性的继承

组合继承的demo:


寄生组合式继承的demo:


二者的区别:

组合继承最大的问题就是需要调用两次超类型的构造函数,这会造成构造函数中的属性被继承两次,导致属性的冗余;而寄生组合式继承只调用一次超类型的构造函数,避免创建不必要的多余的属性,同时还能保持原型不变,总之比组合继承更高效。

疑问?

既然寄生组合式继承比组合继承更高效,是开发人员普遍认为的最理想继承范式,那为什么却不是最常用的继承模式,反而组合继承才是最常用的,这不是很矛盾吗?哪位大神可以解释一下?

原创粉丝点击