在javascript中使对象变空的内存有效方法?

时间:2013-10-17 07:06:03

标签: javascript json

基本上我想要做的是,在我的目的被提供后,每次使用单个对象后使用它 对于javascript中的数组,我曾经写arr.length=0来使任何数组为空,而不是将其指向不同的内存位置。有什么办法可以在javascript中清空对象吗? 场景是:

var obj = {};
obj["name"]="Aman";
obj["country"]="India";
console.log(obj); // output is { name: 'Aman', country: 'India' }

删除内容后,我可以重复使用 obj 对象吗?如果是这样的话?

3 个答案:

答案 0 :(得分:3)

我能想到的唯一方法是循环遍历对象并依次删除每个属性。

var obj = {};
obj["name"]="Aman";
obj["country"]="India";

for (var prop in obj) {
    // Possibly with a hasOwnProperty test, depending on how empty you want it to be
    delete obj[prop];
}

console.log(obj);

显然,如果你没有处理对象的多个引用,你可以用新的引号覆盖它。

var obj = {};
obj["name"]="Aman";
obj["country"]="India";

obj = {};

console.log(obj);

答案 1 :(得分:2)

for (var member in myObject) {
    if ( myObject.hasOwnProperty(member) ) {
        delete myObject[member];
    }
}

答案 2 :(得分:0)

使用ECMAScript 6 Map:

var obj = new Map();
obj.set("name", "Aman");
obj.set("country", "India");
obj.clear();