ES6和ES5继承的区别

526 阅读1分钟

画了个图,左边是ES5的继承方式,右边是ES6的继承方式

第一个差别:

  • ES6的构造函数通过原型链连接起来了,构造函数之间有直接的引用关系;
  • ES5实际上是使用call或者apply借用父类构造函数实现的实例化,构造函数之间没有直接的引用关系

第二个差别:

  • ES5的实例化对象是由子类构造函数先创建的,然后父类构造函数是使用call或者apply修改这个对象
  • ES6的实例化对象是由父类构造函数先创建的(这就是为什么要先调用super),然后子类构造函数修改这个对象