在ES5中,比较好的继承方式时,通过构造函数继承,继承属性;再通过原型链继承,继承方法;
而ES6中,直接通过extends关键字进行继承。
它们主要的区别在于:
ES5中,先创建子类的实例this,再通过父类构造函数或原型向其上添加属性或方法;而ES6中,是先通过super创建父类实例this,再向其中添加属性或方法。
ES6中,有两条原型链。
class A{
}
class B extends A{
constructor(name){
super()
this.name = name
}
}
B._proto_ = A
B.prototype._proto_ = A.prototype