
回复
1. 借助构造函数实现继承
**缺点:**只能实现部分继承。Child只能继承Parent构造函数里面的属性。不能继承Parent原型链上的。
’2. 借助原型链实现继承
**缺点:**实例化两个类,修改第一个实例的属性,会牵动第二个实例的属性变化。原因是两个实例的原型对象引用的是同一个对象,都是父类的实例对象。而改变的方法在父类的实例对象上,而且是引用类型。
3. 组合方式
解决了上面遗留下来的缺点
**缺点:**父类构造函数执行了两次。
4. 组合继承的优化1
不仅能把构造体内的函数属性拿到,还可以把原型链上的属性拿到。
**缺点:**用constructor判断实例是哪个构造函数实例化的失效了。上面构造函数的方式也有同样的问题。他们的constructor都指向父类。
5. 组合继承的优化2