《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.8k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏