DaBear: Referenzen und Objekte bei Javascript

Beitrag lesen

Hi,

Das ist mir zu ungefähr. Zeig' doch mal das kurzes Beispiel mit allen Ausgaben, so dass man nachvollziehen kan, was du genau meinst.

Das geht doch aus dem Code klar hervor.

Nicht wirklich - da definierst du nur Funktionsobjekte, ohne von denen dann auch Instanzen zu erzeugen. Und die tuwas-Methoden sind auch syntaktisch fehlerhaft notiert.

So besser?

  
function A(a)  
{  
   var a = a;  
  
   this.ausgeben = function ausgeben()  
   {  
      return a;  
   }  
}  
  
function B(a)  
{  
   var a = a;  
  
   this.tuwas = function tuwas()  
   {  
      a = new A(new Array());  
      //a ausgeben  
   }  
}  
  
function C(meinarray)  
{  
   var meinA = new A(meinarray);  
  
   this.tuwas2 = function tuwas2()  
   {  
      var meinB = new B(meinA);  
      meinB.tuwas();  
      //Ausgabe von meinA  
   }  
  
   this.ausgeben = function ausgeben()  
   {  
      return meinA.ausgeben();  
   }  
}  
  
var c = new C(new Array("1", "2", "3"));  
//meinA hat jetzt das Array gespeichert  
c.tuwas2();  
//Gibt jetzt kein leeres Array aus, sondern das Array mit den 3 Strings  
c.ausgeben()  

Wenn ich von B hingegen eine Methode von A aufrufen lassen, mit der A etwas in sich selbst ändert, dann bleibt die Änderung "für immer".
Wie erreiche ich es nun, dass B quasi A "löscht"?
Ich könnte in tuwas2() natürlich einfach "meinA = new A(new Array());" schreiben, aber das möchte ich nicht. Geht das auch anders?