有没有办法清除 Javascript 中的对象?具体来说,如果一个对象有多个成员变量,是否有一种简单的方法来重置每个值?
function exampleObject() {
this.valueA = "A";
this.valueB = "B";
this.myArray = [1,2,3];
}
那么基本上,对于上述实例,将三个成员重置为空字符串和空数组?我可以轻松地为对象创建一个成员函数原型(prototype)来执行此操作并调用它:
function exampleObject() {
this.valueA = "A";
this.valueB = "B";
this.myArray = [1,2,3];
exampleObject.prototype.resetAll = function() {
this.valueA = "";
this.valueB = "";
this.myArray = [];
}
}
但是我想对第三方库中的对象执行此操作,因此添加成员函数是不现实的。
最佳答案
这取决于你所说的“重置”是什么意思。如果您想根据属性类型将所有属性清除为某个默认值,您可以执行以下操作:
function resetObject(o) {
for(var key in o) {
if(!o.hasOwnProperty(key)) continue;
var val = o[key];
switch(typeof val) {
case "string":
o[key] = ""; break;
case "number":
o[key] = 0; break;
case "boolean":
o[key] = false; break;
case "object":
if(val === null) break;
if(val instanceof Array) {
o[key] = []; break;
}
val = {};
//Or recursively clear the sub-object
//resetObject(val);
break;
}
}
}
关于javascript - 有没有办法在 JavaScript 中清除对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24089850/