继承的方式:
- 原型链继承
- 构造函数继承
- 组合继承
- ES6的extends继承
一、原型链继承:
缺点:
1、无法传参;
2、所有新实例都共享父类实例的属性,也就是一个实例修改了原型属性,其他实例也会被影响。
二、构造函数继承:
缺点:
1、只继承了父类构造函数的属性,没有继承父类原型的属性;
2、无法实现构造函数的复用,每次用都要重新调用;
3、每个新实例都有父类构造函数的副本,代码臃肿繁琐;
三、组合继承:
结合了原型链继承和构造函数继承的优点,可传参,可复用,每个新实例引入的构造函数都是私有的。
缺点: 比较耗内存,因为调用了两次父类构造函数。
四、ES6的extend继承:
通过extends和super实现继承。