ich erzeuge dynamisch mehrere Instanzen einer Klasse:
new testklass();
Die instanz wird dann nach einer gewissen zeit nicht mehr gebraucht (zeitabhänig).
Also will ich den speicher auch wieder freigeben.
hierfür hab ich eine funktion in der klasse „remove“.hier werden alle intervale die in der klasse genutzt wurden gelöscht (clearInterval). dann soll auch die instanz gelöscht werden.
gibts da was wie:
this = null;
das ich in der instanz quasi in der methode welche überprüft ob die instanz noch gebraucht wird aufrufe:
Es gibt auch delete Obj, was aber nicht unbedingt den Speicher frei gibt. Die Speicherverwaltung mach JS allein ohne dass du von aussen eine Möglichkeit der Beeinflussung hast. Aber in der Regel ist sowas auch nicht nötig, wir haben seit einigen Jahren die 640 KB Grenze überschritten.
mir ging es hauptsächlich darum, kein speicherleck zu programmieren.
da, wenn das script läuft, es länger zeit aktiv ist auf der seite und viele Instanzen erzeugt werden sollen.
diese werden dann halt immer wieder „vernichtet“ wenn ich sie nicht mehr brauche.
Closures kann man kaum umgehen, da sie ein grundlegendes Sprachfeature sind. Trifft auch nur auf den IE zu.
Wenn das Objekt aus dem Array gelöscht wird, sollte die Carbage Collection das wirklich entfernen. Darauf muss du einfach hoffen, daran ändern kann du nix.