《ECMAScript 6 入门》Class的继承案例代码问题?

《ECMAScript 6 入门》 #### Class的继承章节中

原案例代码如下:

class A {
  constructor() {
    this.x = 1;
  }
}

class B extends A {
  constructor() {
    super();
    this.x = 2;
    super.x = 3;
    console.log(super.x); // undefined
    console.log(this.x); // 3
  }
}

let b = new B();

内容链接

原书对这段代码的解释

上面代码中,super.x赋值为3,这时等同于对this.x赋值为3。而当读取super.x的时候,读的是A.prototype.x,所以返回undefined。

但实际环境测试次代码,console.log(this.x)此语句实际输出的是2,不是3.
请问是书上描述错了,还是我理解错了?

阅读 1.7k
1 个回答
推荐问题
宣传栏