执行 [[Get]] 或 [[Put]] 操作a
抛出一个 RangeError 指出Maximum call stack size exceeded
指向this.a
在吸气剂和=
在设置器中。
let someObject = {
get a() {
return this.a;
},
set a(val) {
this.a = val;
}
}
someObject.a; // Error
someObject.a = 5; // Error
如果 getter 和 setter 内的属性带有下划线,则它们可以工作:
let someObject = {
get a() {
return this._a_;
},
set a(val) {
this._a_ = val;
}
}
我已经在 Node 环境和 Chrome 中的 v10 引擎中对此进行了测试,并且发生了同样的事情。
如此混乱。发送帮助。
因为通过做return this.a
您正在访问a
属性,触发 getter 函数,该函数访问a
属性,触发 getter 函数,该函数访问a
属性,触发 getter 函数...死循环。
二传手也一样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)