Es5中的继承有:
-
原型链继承:(易于实现,创建子类实例时不能向父类构造函数传参)
父类的实例作为子类的原型,子类可以重写父类上方法
父类中私有的或者公有的属性和方法, 最后都会变成子类公有的属性和方法
-
call继承:(可以实现多继承,可以传参,无法复用,不能继承原型属性/方法)
复制父类的实例属性给子类,只能继承父类私有的属性和方法
-
组合继承
通过call继承对实例属性的继承,
原型链对原型方法的继承, 调用多次父类构造函数
Es6有class继承
首先利用class构造一个父类,然后利用extends与super实现子类继承