wahsaga: OO in JS - Objekt löschen/Destruktor?

Beitrag lesen

hi,

Das ist ein Denkfehler Deinerseits. Ein _Innerhalb_ eines _Objektes_ gibt es nicht.

war vielleicht schlecht formuliert.
mit "innerhalb" meinte ich, dass ich halt so, wie in meinem beispiel, eine objektmethode definiere, mit deren aufruf sich die jeweilige objektinstanz selber "löschen" kann.

Die Funktion myObj() ist der Prototyp Deines Objekts meinObjekt. Du kannst also mit
delete meinObjekt;
Dein Objekt löschen.

ja, das war mir bewusst.

Du kannst aber nicht im Prototyp eine Methode verankern, die alle auf diesem Prototyp basierenden Objekte löscht. Wolltest Du das erreichen?

nein, ich will im prototyp eine methode verankern, mit der die betreffende objektinstanz _sich selbst_ den garaus machen kann.

meinObjekt = new Prototyp();
...
meinObjekt.loeschen();

damit soll meinObjekt sich jetzt selbst "entfernt" haben, durch = null setzen oder wie auch immer.
ich möchte jedenfalls, dass meinObjekt jetzt im script nicht mehr verfügbar ist.

ich hatte das statt einer methode, die delete this auszuführen versucht, auch noch mit this = null; probiert, aber da meckert mich die JS-konsole vom firefox mit irgendwas von wegen unerlaubter zuweisung an (genaue meldung gerade nicht parat).

Objekte, die nicht mehr benötigt werden, werden einfach beendet (auf NULL gesetzt, Streams geschlossen, Threads finalized).

gerade das würde ich ja gerne aus dem objekt selber heraus machen - eine suizid-methode sozusagen.
aus dem script heraus mit delete meinObjekt ist ja kein größeres problem.
ich möchte aber ein objekt haben, dass ein paar aktionen durchführt, und sich danach selber ins nirwana verabschiedet.

gruß,
wahsaga

--
"Look, that's why there's rules, understand? So that you _think_ before you break 'em."