Ja, gut. Hatte es auch in gut geschrieben, aber habe das Fenster aus Versehen geschlossen und musste alles nochmal schreiben, deswegen ist alles ein bischen kurz geraten. Dessen ungeachtet, ich hatte alles erklärt.
Das Objekt xWindow erstellt also ein Fenster mit allem drum und dran. Hier ist init():
function init() {
nav = new xWindow();
/*EinLink sei ein Link-Objekt.*/
EinLink.onclick = function() {
if(!window.newX) { // Ein neues Fenster namens newX soll nur erstellt werden, wenn es newX nicht bereits gibt. Deswegen muss, wenn newX geschlossen werden soll, auch das Objekt newX gelöscht werden, nicht nur die entsprechenden DOM Elemente. Aber das ist nicht der Einzige Grund; wenn man 1000 Fenster öffnet und wieder schließt, müssen die Objekte gelöscht werden, sonst bleiben die im Speicher.
newX = new xWindow();
newX.setTitle("A new xWindow");
newX.close();
} else {
alert(newX.title); // newX.close() hat zwar das DIV gelöscht, aber das Objekt selbst ist noch vorhanden, inklusive der Eigenschaft title, die hier zum Test ausgegeben wird. (wenn ich nocheinmal auf den selben Link klicke)
}
}
}
Funktioniert obj = null nicht?
»»
in deleteObj(obj)? Nein.
Wieso nicht?
könntest du dir mal die Mühe machen genau zu erklären was du willst, schließlich willst DU Hilfe, nicht ich.
Stimmt. obj = null; geht nicht, weil man damit die Referenz zu newX gleich null stellt, nicht aber newX selbst.
Auch delete obj; löscht nur die Referenz. Genau hier liegt das Kernproblem.
Und ich muss das Objekt löschen, sonst ist nach kurzer Zeit der Speicher voll.