Mit einem JavaScript-Array kann ich es mit einer einzigen Zuweisung auf einen leeren Zustand zurücksetzen:
array.length = 0;
Dadurch erscheint das Array leer und kann wiederverwendet werden, und soweit ich weiß, handelt es sich um eine einzige "Operation", d. h. um eine konstante Zeit.
Gibt es eine ähnliche Möglichkeit, ein JS-Objekt zu löschen? Ich weiß, ich kann seine Felder durchlaufen und sie löschen:
for (var prop in obj) { if (obj.hasOwnProperty(prop)) { delete obj[prop]; } }
aber dies hat eine lineare Komplexität.
Ich kann das Objekt auch einfach wegwerfen und ein neues erstellen:
obj = {};
Aber "promiscuous" Erstellung von neuen Objekten führt zu Problemen mit Garbage Collection auf IE6. ( Wie hier beschrieben )