Tag Stefan.
ich möchte eine Objekt-Eigenschaft in Form eines Arrays benutzen. Das funktioniert aber nur, wenn diese Eigenschaft in der Objekt-Definition festgelegt wurde, nicht aber, wenn sie von einem übergeordneten Objekt vererbt wurde. Der folgende Code gibt für die Eigenschaft "Objekte" der Instanzen "Kind1" und "Kind2" beidesmal den String "Rassel" aus, es scheint also, als würden alle Instanzen auf denselben Wert gesetzt. Das ist aber nicht der Fall, wenn die Eigenschaft keine Arrayform hat, oder keine Vererbung vorliegt, wie beim "WAISE"-Objekt.
Ja. Wenn du es so schreibst, wird das Objekt ELTERN nur einmal vererbt, nämlich auf das Objekt KIND. Damit steht es mit seinen Eigenschaften für alle KIND-Objekte genau einmal zur Verfügung. Änderst du eine vom Objekt ELTERN geerbte Eigenschaft, führt das zu dem von dir beschriebenen Ergebnis führt. Willst du für jedes KIND-Objekt auch ein dazu gehörendes ELTERN-Objekt haben, könnte es vom Ansatz her so aussehen:
function ELTERN (a, b){
this.Objekte = a || ["leer"];
this.Alter = b || 30;
}
function KIND (c, d, e){
this.ELTERN = new ELTERN(d, e);
this.irgendwas = c;
}
Das Ganze dann so aufgerufen:
Kind1 = new KIND("irgendwas", "Ball", 5);
Kind2 = new KIND("nochwas", Rassel", 10);
führt dann zu dem Ergebnis, das du haben möchtest. Ich hoffe, ich habe das jetzt richtig und verständlich erklärt :)
[dsf 3.6]
Siechfred
»Sie kochten heimlich mit Wasser und tranken öffentlich Wein.«