Seit EcmaScript5 gibt es die Möglichkeit über die Helfermethode Object.create() ein Objekt zu erzeugen. Als Parameter wird der Prototyp des zu erzeugenden Objekts erwartet.
let opel = Object.create({name:"Opel", raeder:4}); console.log( opel.raeder);//4
var Auto = new Object(); Auto.tueren = 5; Auto.raeder = 4; Auto.extras = ["Autoradio", "Navi", "Spoiler"]; Auto.aboutExtras = function(){ console.log("Extras: "+ this.extras); } Auto.aboutExtras();
Im Beispiel wird mit dem Schlüsselwort new
ein neues Objekt Auto erzeugt. Dieses bekommt die Attribute: tueren, raeder und die Methode aboutExtras nachträglich zugewiesen. In der letzten Zeile wird die Methode aboutExtras aufgerufen.
Beachte das Schlüsselwort this
in der Funktion. Es bezieht sich auf das Objekt. Ohne this
wäre extras undefiniert.
Auf vorige Weise kann man zwar keine weitere Instanz der Klasse Auto erzeugen, man könnte jedoch ein Duplikat des Objekts erzeugen:
var Klapperkiste = Object.create(Auto);
Das Objekt Klapperkiste besässe die gleichen Eigenschaften und Methoden wie Auto. Diesen Attributen und Methoden könnte man andere Werte zuweisen. Außerdem könnte man weitere Attribute und Methoden anhängen.
Klapperkiste.raeder = 3;
Klapperkiste.radio = true;