Javascript的super关键字,当我在Chrome,Babel,TypeScript上运行代码时,我得到了不同的结果.
我的问题是哪个结果是正确的?规范的哪一部分定义了这种行为?
以下代码:
class Point {
getX() {
console.log(this.x); // C
}
}
class ColorPoint extends Point {
constructor() {
super();
this.x = 2;
super.x = 3;
console.log(this.x) // A
console.log(super.x) // B
}
m() {
this.getX()
}
}
const cp = new ColorPoint();
cp.m();
Run Code Online (Sandbox Code Playgroud)
结果:
链接:
从语言设计的角度来看,为什么:
if('k' in null);
TypeError: Cannot use 'in' operator to search for 'k' in null
但:
for('k' in null);
版画 undefined
在ECMAScript规范中:
它是语言设计的缺陷吗?