寄生式继承

关键:在原型式继承的函数里,给继承的对象上添加属性和方法,增强这个对象

缺点:只能继承父类函数原型对象上的属性和方法,无法给父类构造函数传参

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    function createObj(obj) {
     function F() { }
     F.prototype = obj
     F.prototype.construct = F
     F.prototype.age = 20  // 给F函数的原型添加属性和方法,增强对象
     F.prototype.showAge = function () {
       console.log(this.age);
    }
     return new F
  }
   function Father() {
     this.name = '刘逍'
  }
   Father.prototype.showName = function () {
     console.log(this.name);
  }
   const son = createObj(Father.prototype)
   son.showName() // undefined
   son.showAge()  // 20