原型寄生组合式继承

724 阅读1分钟

image.png

以上是组合式继承,其实完全没必要Student.prototype=new Person()

只需要使用Student.prototype=Object.create(Person.prototype),我们称这种方式为寄生组合式继承。

寄生组合式继承:使用了两个技术:

  1. 利用原型链技术,来实现构造函数过程的复用,(明明Person上已经this.name=name;this.age=age,Student也有这些特征,应该不需要再写了,使用call,改变this指向就实现了)
  2. 使用Object.create()改变Student.prototype,是其原型指向Person,来实现方法的继承.

Object.create()做了两件事:

  1. 创建了一个对象;
  2. 将传递的参数作为原型。

class 的extends继承

image.png