Timo "God's Boss" Reitz: Arrays und .push()

Beitrag lesen

Ich definiere einen eigenen Datentypen, den ich später mit Formulardaten füttere:

function currentReservation() {

this._Event = '',
this._Date = '',
this._Type = '',
this._Message = {
  Salutation: '',
  Name: '',
  eMail: '',
  Phone: '',
  Message: ''
}
}
var temp_reservationObj = new currentReservation();

  
Kleiner Tipp am Rande: Eingebürgert hat sich, Konstruktoren mit einem Großbuchstaben zu beginnen (z.B. `CurrentReservation`{:.language-javascript}), Eigenschaften von Objekten aber mit Kleinbuchstaben (z.B. `{x:50,y:-22,z:0}`{:.language-javascript}).  
Warum beginnen außerdem einige deiner Objekteigenschaften mit einem Unterstrich?  
  

> 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.  
  
Leider fehlt der relevante Code, da du nicht schreibst, wie dieses Neubefüllen aussieht. Falls du dabei aber keine neuen Instanzen erstellst, sondern einfach das Objekt mit neuen Daten befüllst, ist das der Fehler.  
  

> Auch die Verwendung eines JSON-Objektes a la  
> ~~~javascript

var temp_reservationObj = {  

>        _Event: '',  
>        _Date: '',  
>        _Type: '',  
>        _Message: {  
>         Salutation: '',  
>         Name: '',  
>         eMail: '',  
>         Phone: '',  
>         Message: ''  
>        }  
>       }

bringt keine Änderung. Was mache ich verkehrt?

Das ist ein JavaScript-Objektliteral. JSON hat damit nichts zu tun.

--
Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|