为什么不悬挂ES6类?
其实他们 _都_悬挂(变量绑定在整个范围内都有效),就像
let和
const是他们只未初始化。
提升其定义很有意义
不。在定义类之前使用类绝不是一个好主意。考虑例子
var foo = new Bar(); // this appears to workconsole.log(foo.x) // but doesn'tfunction Bar(x) { this.x = x || Bar.defaultX;}Bar.defaultX = 0;比较一下
var foo = new Bar(); // ReferenceErrorconsole.log(foo.x);class Bar { constructor (x = Bar.defaultX) { this.x = x; }}Bar.defaultX = 0;如您所料,这会引发错误。这是静态属性,原型混合,装饰器和其他所有问题。对于子类来说,这也是非常重要的,当您将类与未经调整的原型一起使用时,子类在ES5中完全中断,但是如果
extend尚未初始化ed类,则现在会引发错误。



