DaBear: Referenzen und Objekte bei Javascript

Beitrag lesen

Hi,

Nun wird vom B die Methode tuwas() aufgerufen, die das A quasi löscht bzw. halt ein neues A ohne Array erzeugt.

Nein, gelöscht wird da überhaupt nichts - lediglich die lokale Variable a wird überschrieben.

Mein ich doch ;)

Wenn man nun aber nach diesem Aufruf das A ausgibt, dann ist es plötzlich das alte A! Es wird vom B nicht gelöscht, die Arraywerte sind erhalten geblieben. Wenn ich jedoch innerhalb von B das A nach dem Löschen ausgebe, dann ist das A gelöscht.

Wie kommt das?

Weil a in B eine lokale Variable ist.

Ja aber a ist doch eine Referenz oder nicht? Also müsste doch das Objekt selbst geändert werden und die Änderung auch noch bleiben, nachdem B beendet ist.

Wie erreiche ich es denn (eleganzt), dass das Objekt danach geändert bleibt?