我的回答

class类只是语法糖, 本质上和es5的类没有区别, 本质上是寄生组合继承

参考回答

ES5的类

function

class

类声明创建一个基于原型继承的具有给定名称的新类

区别

  • 类声明不可以提升
  • 类声明不允许再次声明已经存在的类,否则将会抛出一个类型错误
  • class内部是严格模式,构造函数是可选的
  • class的静态方法或者原型方法都不可枚举,并且这些方法都没有原型,不可被new
  • class必须使用new 来调用
  • class内部无法重写类名