为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

有只小跳蛙 2019-03-22 18:19:11
《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 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

楼主注意,如果你是在Babel转码下执行这段,结果还真的不是3...
可以看看我的这篇文章:Babel转码对于 "super" 处理的注意事项

查看完整回答
反对 回复 2019-04-10
  • 1 回答
  • 0 关注
  • 338 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信