使用 JavaScript 数组,我可以通过一次赋值将其重置为空状态:
array.length = 0;
这使得数组“出现”为空并准备重用,据我所知,这是一个单一的“操作”——即常数时间。
有没有类似的方法来清除 JS 对象?我知道我可以迭代它的字段删除它们:
for (var prop in obj) { if (obj.hasOwnProperty(prop)) { delete obj[prop]; } }
但这具有线性复杂性。
我也可以将对象扔掉并创建一个新对象:
obj = {};
但是新对象的“混杂”创建会导致 IE6 上的垃圾收集出现问题。(如此处所述)