我不理解关于判断顺序的内容.我有很多困惑的地方,我希望有人能帮我澄清一下.
- 如果存在扩展子句,则首先对其求值.它的求值结果必须为有效的构造函数或NULL,否则将引发TypeError.
class bar extends null {} // TypeError: Super constructor null of bar is not a constructor
为什么?根据上面的描述,这应该是正确的.
- 对于每个实例字段(公共或私有),保存其初始值设定项表达式.在实例创建过程中,在构造函数开始时(对于基类)或在Super()调用返回之前(对于派生类),计算初始值设定项.
class F {
x = 1; // 2
constructor() {
this.y = 10; // 3
}
}
class P extends F {
j = 2; // 4
constructor() {
super(); // 1
this.k = 20; // 5
}
}
let p = new P();
为什么?我执行了这段代码,结果与它所描述的完全不同.