ChrisB: Arrays und .push()

Beitrag lesen

Hi,

Ich definiere einen eigenen Datentypen, den ich später mit Formulardaten füttere:
function currentReservation() {

Du hast also ein (Funktions-)Objekt definiert,

var temp_reservationObj = new currentReservation();

Und legst von diesem eine neue Instanz an.
temp_reservationObj referenziert jetzt also auf dein neues Objekt vom Typ currentReservation.

Schließlich möchte ich diesen Datentyp einem Array hinzufügen:

var reservationObj = new Array();
reservationObj.push(temp_reservationObj);


>   
> Der eigene Datentyp wird mehrmals mit neuen Daten befüllt (ohne Seitenreload), die als immer neues Element dem Array hinzugefügt werden sollten. Und "sollte" ist auch das Problem: füge ich ein jeweils neues Element dem Array hinzu (.push(), siehe oben), funktioniert dies auch grundsätzlich, nur werden die Werte aller bereits vorhandenen Elemente des Array mit den Werten des neu hinzugefügten Elements überschrieben.  
  
Natuerlich, weil du immer noch mit der selben Instanz von currentReservation arbeitest.  
  
JavaScript uebergibt Objekte \*immer\* per reference.  
Du hast also gar nicht mehrere Objektinstanzen in deinem Array, sondern lediglich die Referenz auf die eine vorhandene mehrfach eingefuegt.  
Also aendern sich auch bei "allen" die Daten, wenn du sie bei dem "einen" aenderst.  
  
Wenn du mehrere Instanzen deines Objektes currentReservation nutzen willst - dann lege auch mehrere Instanzen an.  
  
MfG ChrisB  
  

-- 
„This is the author's opinion, not necessarily that of Starbucks.“