原理:

通过原型链 + 构造函数实现组合式继承

代码理解

  1. // 父类
  2. function SuperType(){
  3. this.name = 'p';
  4. }
  5. SuperType.prototype.getName = function() {
  6. return this.name;
  7. }
  8. // 子类
  9. function SubType(){
  10. this.age = 18;
  11. SuperType.call(this) // 第二次执行
  12. }
  13. SubType.prototype = new SuperType(); // 第一次执行
  14. SubType.constructor = SubType;
  15. SubType.prototype.getAge = function() {
  16. return this.name;
  17. }
  18. let instance = new SubType();

缺点

  • 多次调用父类、保存一些重复性的数据