在javascript中清空普通对象的最有效方法是什么?

时间:2013-03-03 19:30:41

标签: javascript arrays performance dictionary clear

如上所述Here,似乎在javascript中清空现有数组(而不是分配新数组)的最有效方法是使用:

array.length = 0;

相同的操作是否适用于普通对象? (又名“关联数组”或“字典”) 如果没有,清空现有的javascript对象的最有效方法是什么?

我认为分配一个新选项不是最佳选择,因为它会将一些额外的工作推送到垃圾收集器,并在堆上分配一些新的内存,但我可能错了。

我需要一个至少适用于Chrome和Firefox的解决方案。

1 个答案:

答案 0 :(得分:23)

最简单的方法是创建一个新对象。无论如何,你最终会收集所有属性的垃圾。

var foo = {
    a: 5,
    b: 4
};
foo = {};

您还可以迭代属性并单独删除它们:

for (var prop in foo) {
    if (foo.hasOwnProperty(prop)) {
        delete foo[prop];
    }
}

作为一个措辞,值得指出的是,JavaScript的对象具有属性,而不是关联数组。