《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" 处理的注意事项
添加回答
举报
0/150
提交
取消