ES5,ES6继承除了写法以外还有何区别

426 阅读1分钟

详情:github.com/Advanced-Fr…

总结:

1.class 声明会提升,但不会初始化赋值。

2.class 声明内部会启用严格模式。

3.class 的所有方法(包括静态方法和实例方法)都是不可枚举的。

4.class 的所有方法(包括静态方法和实例方法)都没有原型对象 prototype,所以也没有[[construct]],不能使用 new 来调用。

5.必须使用 new 调用 class。

6.class 内部无法重写类名。

7.ES5 和 ES6 子类 this 生成顺序不同。ES5 的继承先生成了子类实例,再调用父类的构造函数修饰子类实例,ES6 的继承先生成父类实例,再调用子类的构造函数修饰父类实例。这个差别使得 ES6 可以继承内置对象。