如何实现继承及继承的几种方式
借助构造函数实现继承
1 | function Parent() { |
- 原理:子类通过call方法改变函数运行上下文
- 不足:把Parent1的this指向Child1,不能继承父类的原型上的方法
借助构造函数实现继承
1 | function Parent2() { |
- 原理:子类通过prototype属性指向父类的实例
- 不足:修改s1,s2同时也改变,事实应该是隔离的,原型链中的原型对象是公用的
组合方式继承
1 | function Parent3() { |
- 不足:父类构造函数执行了两次
组合方式继承优化1
1 | function Parent4() { |
组合方式继承优化2
1 | function Parent5() { |