我在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 ;
};
答案 0 :(得分: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 || "";
},
你不必那样做;这只是一种有效的方式。