在这里,我想将Data的所有属性重置为其原始值,该怎么做?
var Data = {
prop1: false,
prop2: true,
prop3: null
}
Some code executes & sets Data.prop1 = "abc";
我从未实例化数据,这是一个问题吗?
最佳答案
另一种方法是:
var Data = {
prop1: false,
prop2: true,
prop3: null,
// save initial values
init: function() {
var origValues = {};
for (var prop in this) {
if (this.hasOwnProperty(prop) && prop != "origValues") {
origValues[prop] = this[prop];
}
}
this.origValues = origValues;
},
// restore initial values
reset: function() {
for (var prop in this.origValues) {
this[prop] = this.origValues[prop];
}
}
}
然后,当您使用它时,请在初始化代码中调用
Data.init()
来保存当前值,以便以后可以使用Data.reset()
还原它们。这具有维护更容易的优点。在数据结构中添加或更改变量时,无需进行任何特定更改,它就会自动合并到重置功能中。您可以在这里看到它的工作:http://jsfiddle.net/jfriend00/EtWfn/。