原型链继承
关键在于子类型的原型是父类型的实例对象
方式
- 定义父类型构造函数
- 给父类型的原型添加方法
- 定义子类型的构造函数
- 创建父类型的实例对象赋值给子类型的原型
**子类型.prototype = new 父类型()**
- 给子类型的原型的构造属性设置为子类型
子类型.prototype.contructor = 子类型
,否则会顺着原型链找到父类构造函数 - 给子类型的原型添加方法
- 创建子类型的对象(可以调用父类型的方法)
用构造函数继承(不成立)
关键在子类型构造函数中用super调用父类型构造函数
方式
- 定义父类构造函数
- 定义子类构造函数
- 在子类型构造函数中调用父类型构造
- 在子类型中
父类型.call(this,参数列表)
即super
- 在子类型中
组合继承
原型链+借用构造函数的组合继承
方法
- 利用原型链实现对父类型对象的方法继承
- 利用super()借用复用性构造函数初始化属性
- 即融合上面两个方法