1.原型对象(prototype)继承
优点:
简单,方便,易操作
缺点:
不能继承构造函数里的属性和方法
只能继承原型对象身上的属性和方法
2.原型链(__proto__)继承
优点:
更加的简单,方便,易操作
可以继承构造函数中的方法和属性
可以继承原型身上的方法和属性
缺点:
不方便传参
3.构造函数继承
优点:
方便传参
可以实现多继承
缺点:
只能继承构造函数内部的属性或方法,
不能继承原型身上的属性或方法
4.混合继承(构造函数继承 + 原型对象继承)
优点:
方便传参
可以实现多继承构造函数
可以继承构造函数中的方法和属性
可以继承原型身上的方法和属性
缺点:
略复杂
原型链继承时,传参时有隐患
5.ES6的class继承(构造函数继承 + 原型链继承)
优点:
方便传参
可以继承构造函数中的方法和属性
可以继承原型身上的方法和属性