小编jus*_*vac的帖子

ES6继承:使用`super`来访问父类的属性

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)

结果:

  • Chrome 58.0.3029.110 64bit(V8 5.8.283.38)
  • Babel Repl 6.24.2
  • TypeScript 2.3

链接:

javascript inheritance babel typescript ecmascript-6

8
推荐指数
1
解决办法
497
查看次数

为什么if(键入null); for for时抛出异常(key in null); 不,它是语言设计上的缺陷吗?

从语言设计的角度来看,为什么:

if('k' in null);

TypeError: Cannot use 'in' operator to search for 'k' in null

但:

for('k' in null);

版画 undefined

在ECMAScript规范中:

它是语言设计的缺陷吗?

javascript ecmascript-5

7
推荐指数
1
解决办法
211
查看次数