javascript - 在 JavaScript 中定义 getter 和 setter

标签 javascript

对于 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/

相关文章:

javascript - 使用 javascript/显示和隐藏选择框

javascript - 如何使用jquery将ID从mysql发送到div?

javascript - 下拉列表单击元素以在文本框中显示粗体然后键入正常

javascript - 多级分层边缘捆绑

javascript - JavaScript 中的文件扩展名

javascript - 使用 JavaScript 控制 HTML 中的 mp3 播放

javascript - 如果 jquery 返回未定义并且不工作

javascript - 在条形图和折线图上具有双轴的 Chart.js

javascript - 为什么 onClick 中只有一个函数执行?

javascript - 如何使用 jquery 连接 "this"和附加字符串选择器?