unknown: Objekt Instanzen speichern

Beitrag lesen

Klar, das stimmt. Aber man ist es eher gewöhnt, im JavaScript-Land aufzuräumen. Das JavaScript-Land ist übersichtlicher und einfacher zu verwalten – ein Objekt steckt im dafür vorgesehenen globalen Speicher window.MeinWidget.instances oder nicht.

Hmm, also das window-Objekt ist ja genauso wie ein HTML-Element-Objekt kein natives JS-Objekt.
Schon klar, du meinst mehr das window-Objekt als globales Objekt, aber ich würde da jetzt keine Grenze ziehen zw. reinen JS-Objekten und (Browser-)API-Objekten.

Dass man die Referenzen im DOM-Land genauso aufräumen muss, ist noch nicht so breit bekannt.

Das würde ich bezweifeln, wenn jemand überhaupt Referenzen auflöst, warum sollte er die am Element-Objekt nicht beachten?

Das DOM-Land ist groß und unübersichtlich, man hat gerne tausende tief verschachtelte Elemente. Es gibt viele Möglichkeiten, versteckt auf Objekte zu verweisen. Event-Handler z.B. sind fies, sie verknüpfen DOM-Knoten mit Funktionen, die häufig größere Objekte einschließen.

Das ist dann vermutlich der Punkt, wo man Speicherprobleme bekommt und überhaupt erst daran denkt die Referenzen aufzulösen.

Nicht ohne Grund haben solche Closures in älteren Browsern Memory-Leaks ausgelöst.

Was heißt nicht ohne Grund? Entweder sind es echte Zirkelreferenzen, die kann der Browser nicht auflösen, oder Bugs, z.B. dass beim entfernen des Elementes der Eventhandler nicht dereferenziert werden. Da gab (vor allem beim IE) und gibt es sicher welche.