「js」常见的继承的方式,一次搞懂(面试高频问题)

156 阅读1分钟

继承的方式:

  1. 原型链继承
  2. 构造函数继承
  3. 组合继承
  4. ES6的extends继承

一、原型链继承:

image.png 缺点:

1、无法传参;

2、所有新实例都共享父类实例的属性,也就是一个实例修改了原型属性,其他实例也会被影响。

二、构造函数继承:

image.png

缺点:

1、只继承了父类构造函数的属性,没有继承父类原型的属性;

2、无法实现构造函数的复用,每次用都要重新调用;

3、每个新实例都有父类构造函数的副本,代码臃肿繁琐;

三、组合继承:

image.png

结合了原型链继承和构造函数继承的优点,可传参,可复用,每个新实例引入的构造函数都是私有的。

缺点: 比较耗内存,因为调用了两次父类构造函数。

四、ES6的extend继承:

image.png 通过extends和super实现继承。