老师好,为什么JS中学过的好几种继承方式到es6中就变成一种了?那class类中的extend继承是属于组合继承吗,父类Parent在子类Child的原型链上?

来源:4-1 extends

城诗

2024-03-23 21:23:00

https://img1.sycdn.imooc.com/climg/65fed6db09e3e9e603410662.jpg

写回答

1回答

好帮手慕小李

2024-03-25

同学你好,解答如下:

1、因为关于面向对象或者封装类更好的被使用,ECMAScript最终迭代了这一部分。

2、在JavaScript中,使用class关键字和extends关键字来实现类的继承,这种方式实际上是一种组合继承(Combination Inheritance)的实现方式。

组合继承是一种常见的继承方式,它结合了原型链继承和借用构造函数继承的优点。具体来说,组合继承的特点是通过在原型链上实现对原型属性和方法的继承,同时在构造函数中调用父类构造函数来实现对实例属性的继承。

在使用class和extends来定义类和实现继承时,实际上是在内部使用了原型链继承和构造函数继承的组合方式。子类通过extends关键字继承父类的原型属性和方法,同时在构造函数中通过super()调用父类的构造函数,实现对父类实例属性的继承。

因此,使用class和extends实现类的继承可以看作是一种组合继承的实现方式。这种方式既能够继承原型链上的属性和方法,又能够继承构造函数中的属性,结合了两种继承方式的优点。

祝学习愉快!

0

0 学习 · 17877 问题

查看课程