Doofer Titel... aber naja. Ich hab folgendes Problem:
function A(a)
{
var a = a;
//...
}
function B(a)
{
var a = a;
this.tuwas = tuwas()
{
a = new A();
//a ausgeben
}
}
function C(meinarray)
{
var meinA = new A(meinarray);
this.tuwas2 = tuwas2()
{
var meinB = new B(meinA);
meinB.tuwas();
//Ausgabe von meinA
}
}
Im Beispiel ist ungefähr das Kommandomuster umgesetzt.
Zunächst wird ein Objekt von C erschaffen und kriegt ein Array übergeben, worauf C ein neues A kreiert. Dann wird von C die funktion tuwas2() aufgerufen. Hier wird ein neues B erschaffen und das B kriegt das bereits bekannte A übergeben (als Referenz oder?). Nun wird vom B die Methode tuwas() aufgerufen, die das A quasi löscht bzw. halt ein neues A ohne Array erzeugt. 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?