Mein Screen-Objekt bleibt eigentlich während der gesamten Dauer der Applikation im Speicher, das sollte eigentlich nicht zerstört werden.
Mir ging es eher um die alten, nicht mehr benutzten DOM-Objekte. Es wäre sehr ärgerlich, wenn diese einfach weiter im Speicher bleiben würden
Ich glaube, du verstehst Referenzen falsch, sonst würdest du dir diese Frage nicht stellen. ;) Ein Objekt b verweist auf ein Objekt a. Das sorgt dafür, das a solange erhalten bleibt, wie diese (oder andere) Referenzen existieren. Beispiel:
var a = {};
var b = { ref : a };
a = null;
a kann hier nicht abgeräumt werden, weil es referenziert wird.
Wenn ich b lösche oder die Referenz entferne, so verweist nichts mehr auf a; es kann abgeräumt werden.
Dein Fall ist nun: Elementobjekt verweist auf Funktionsobjekt.
var handler = function () {};
var el = document.createElement('p');
el.onclick = handler;
document.body.appendChild(el);
Nicht der Handler verweist auf das Element. Es ist keine zirkuläre Referenz.
Wenn du das Element jetzt aus dem DOM entfernst, dann kann es auch abgeräumt werden. Die einzige Referenz darauf war die des Elternelements, welches ins Dokument eingehängt ist.
Mathias