Javascript RangeError:超过Node.js的最大调用堆栈大小

Javascript RangeError:超过Node.js的最大调用堆栈大小,javascript,node.js,model,set,callstack,Javascript,Node.js,Model,Set,Callstack,我在JS中创建了模型脚本,所以我可以传入一个对象并添加一些逻辑和值。我使用get/set生成值,但是当我运行代码时,它抛出一个RangeError:超出了最大调用堆栈大小。有人知道谁来修复此错误吗 var model = { get id() { return this.id ; }, set id(id) { this.id = id || ''; }, get filename(){ return this

我在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 ; 
}; 
您已经为名为“id”的属性定义了一个getter。getter的实现表示它应该从对象返回属性“id”的值

为了获取属性“id”的值,系统首先检查该属性是否有getter。在本例中,存在,因此称为getter

二传手也是如此

您必须将实际属性值保留在其他位置,而不是作为对象属性的值,否则您将遇到与您所遇到的问题完全相同的问题

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

你不必这样做;这只是一种有效的方法。

谢谢,这个错误有误导性。我想,因为我同时拥有get/set和_var,这可能不是实现我想要的最理想的方式。
get id() {
  return this._id;
},
set id(value) {
  this._id = value || "";
},