继承之借用构造函数

设计思想:子类型的构造函数内部借用(调用)父类的构造函数

核心代码:子类型构造函数内:Person.call(this, params)

代码实现:

function Person2(params) {
  // todo: 私有属性定义
}

// 复用方法
Person2.prototype.fn = function() {
  // todo:
}

function Man2(params) {
  Person2.call(this, params);

  // 私有属性定义
  this.name = 'Man2';
}

Man2.prototype.fn = function() {
  // todo: 
}

var man2 = new Man2(params);

注意:子类型的私有属性定义为什么要放到调用父类型构造函数之后?
确保父类型的构造函数不会重写子类型定义的私有属性

优点:解决了原型链继承的缺点
1、引用类型值的原型属性;
2、在子类实例中可以往父类型的构造函数传参。

缺点:
1、在子类的构造函数中调用父类的构造函数,方法在构造函数内部定义,没有实现函数复用
2、在父类型的原型上定义的方法,对子类型不可见。

你可能感兴趣的:(继承之借用构造函数)