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