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

我在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 ; 
}; 

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

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

为了获得属性“id”的值,系统首先检查是否有该属性的getter。 在这种情况下,就是所谓的吸气剂。

二传手同样如此。

你必须将实际的属性值保存在其他地方而不是作为对象属性的值,否则你会遇到你正在遇到的问题。

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

你不必这样做, 这只是一种有效的方式。

链接地址: http://www.djcxy.com/p/80239.html

上一篇: RangeError: Maximum call stack size exceeded for Node.js

下一篇: Getting "Maximum call stack size exceeded error" using protractor