在这里,我想将Data的所有属性重置为原始值,我是如何做到的?
var Data = {
prop1: false,
prop2: true,
prop3: null
}
Some code executes & sets Data.prop1 = "abc";
Run Code Online (Sandbox Code Playgroud)
我从来没有实例化数据,这是一个问题吗?
Hal*_*yon 14
Data是一个dynamic对象.您可以添加一个将重置所有值的函数:
var Data = {
prop1: false,
prop2: true,
prop3: null,
reset: function () {
this.prop1 = false;
this.prop2 = true;
this.prop3 = null;
}
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是:
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];
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,当您使用它时,您可以调用Data.init()初始化代码来保存当前值,以便以后可以恢复它们Data.reset().这具有维护更容易的优点.向数据结构添加或更改变量时,它会自动合并到重置功能中,而无需进行任何特定更改.
你可以在这里看到它的工作:http://jsfiddle.net/jfriend00/EtWfn/.