babel实现继承

  • 使用父类的原型对象创建出新的对象,将构造函数指向子类
  • 将子类的原型对象指向刚创建的对象(增强式继承)

super使用

将子类构造函数的看做对象,将该对象的原型链指向父类

// 保留指向父类构造函数指针
if (superClass) _setPrototypeOf(subClass, superClass);
// 调用super时,取出父类构造函数,将当前对象作为上下文指向父类构造函数
_getPrototypeOf(Cat).call(this)