Mit einem JavaScript-Array kann ich es mit einer einzigen Zuweisung auf einen leeren Zustand zurücksetzen:
array.length = 0;
Dadurch wird das Array "leer" und kann wiederverwendet werden. Soweit ich weiß, handelt es sich um eine einzelne "Operation", dh eine konstante Zeit.
Gibt es eine ähnliche Möglichkeit, ein JS-Objekt zu löschen? Ich weiß, dass ich seine Felder iterieren kann, um sie zu löschen:
for (var prop in obj) { if (obj.hasOwnProperty(prop)) { delete obj[prop]; } }
Dies hat jedoch eine lineare Komplexität.
Ich kann das Objekt auch einfach wegwerfen und ein neues erstellen:
obj = {};
Die "promiskuitive" Erstellung neuer Objekte führt jedoch zu Problemen mit der Garbage Collection im IE6. ( Wie hier beschrieben )
for (var prop in obj)