首页 文章

RangeError:Node.js超出了最大调用堆栈大小

提问于
浏览
2

我在JS中创建了模型脚本,所以我可以传入一个对象并添加一些逻辑和值 . 我使用get / set来生成值,但是当我运行我的代码时,它会抛出一个RangeError:超出最大调用堆栈大小 . 有谁知道谁修复此错误?

var model = {
    get id() {
        return this.id ; 
    },
    set id(id) {
        this.id = id || '';
    },
    get filename(){
      return this.filename ; 
    },
    set filename(name){
      this.filename = name || ''; 
    },
    get savename(){
      return this.savename ; 
    },
    set savename(name){
      this.savename = name || ''; 
    },
    get filetype(){
      return this.filetype ; 
    },
    set filetype(name){
      this.filetype = name || ''; 
    }
};

module.exports = function(parm){
  model.id = parm.id ; 
  model.filename = parm.filename ; 
  model.savename = parm.savename ; 
  modle.filetype = parm.filetype;
  return model ; 
};

1 回答

  • 1
    get id() {
        return this.id ; 
    },
    

    您已为该属性定义了一个名为“id”的getter . 你对getter的实现说它应该从对象返回属性“id”的值 .

    为了获得属性“id”的值,系统首先检查是否存在该属性的getter . 在这种情况下,有,所以调用getter .

    同样适用于二传手 .

    您必须将实际属性值保留在除了object属性值之外的其他位置,否则您将遇到您遇到的问题 .

    get id() {
      return this._id;
    },
    set id(value) {
      this._id = value || "";
    },
    

    你没必要那样做;这只是一种有效的方式 .

相关问题