对于 javascript 中定义的 setter,我收到以下错误:“RangeError:超出最大调用堆栈大小”。
代码4如下:
setter 定义:
this.__defineSetter('_myList', function(list)
{
log.debug("in setter ....");
if(this._myList == list)
{
log.debug("in setter..");
return;
}
this._myList = list;
});
调用:
myMethod = function(msg)
{
try
{
this.myList = msg.myList;
}catch(e)
{
log.debug("error in calling setter... " + e);
}
}
我无法弄清楚为什么它会无限循环?
最佳答案
当你打电话时
this._myList = list;
它调用定义的setter,这会导致无限递归。
关于javascript - 在 JavaScript 中定义 getter 和 setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11357331/