我目前在我的 javascript 中使用伪对象结构。例如:
MyObj = function(options) {
options = options || {};
this.valueA = options.valueA || 'A';
this.valueB = options.valueB || 'B';
this.valueC = options.valueC || 'C';
this.valueD = options.valueD || 'D';
}
MyObj.prototype.doStuff() {
// do stuff
}
现在我需要根据仅包含已更改属性的 JSON 数据更新上述实例。
目前我使用的函数有点像:
MyObj.prototype.update(obj) {
if(obj.valueA) this.valueA = obj.valueA;
if(obj.valueA) this.valueB = obj.valueB;
if(obj.valueA) this.valueC = obj.valueC;
if(obj.valueA) this.valueD = obj.valueD;
}
现在在上面的示例中,一切正常,但是我定义的一些对象非常大,并且一些属性并不简单(因为 aif(x)
是不够的)。这使得代码既混乱又复杂。恕我直言的复杂性是,当我引入新属性时,我被迫维护两个不同的地方。这让我很担心,因为我知道这可能是引入缺陷的原因。
所以我的问题是,是否有一种 javascript 机制可用于将对象的属性应用于我的“MyObj”实例?我对我的方法不满意,我发现很难搜索关于这个主题的问题(怀疑这是由于我对这些实体的正确 javascript 术语缺乏了解)。
顺便说一句,obj 是通过解析 JSON 数据创建的。