Auf dieser Seite stelle ich 2 weitere Möglichkeiten vor, in Javascript ein Objekt zu erzeugen. Eine Methode mittels new Object()
und eine moderne Möglichekeit mittels class.
Im Beispiel wird mit dem Schlüsselwort new
ein neues Objekt auto erzeugt. Dieses bekommt die Attribute: tueren, raeder, geschwindigkeit und die Methode aboutExtras zugewiesen. In der letzten Zeile wird die Methode aboutExtras
aufgerufen.
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();
Beachte das Schlüsselwort this
in der Methode aboutExtras() n. Es bezieht sich auf das Objekt. Ohne this
wäre extras undefiniert.
Auf diese Weise kann man zwar keine weitere Instanz 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;
Mit ECMAScript6 kann man auch über das Schlüsselwort class eine Klasse erzeugen.
'use strict'; class Hut { constructor(ecken, farbe){ this.ecken = ecken; this.farbe = farbe; } singMeinLied(){console.log("Mein " + this.farbe + "er Hut der hat " + this.ecken + " Ecken.")}; } let zylinder = new Hut(3, "rot"); zylinder.singMeinLied();
Das folgende Thema eval() kann man getrost erstmal überschlagen.
Mittels dem Javascript Befehl eval() kann man Strings zu einem Objekt auflösen. Strings lassen sich verschicken und können dann empfangen und mittels eval() zu einem Objekt zusammengesetzt werden.
var auto = "({tueren:4, raeder:3})";
So eine Zeichenkette kann man an den Server schicken, der es dann verarbeitet. Oder man bekommt so eine Zeichenkette vom Server und kann diese dann mittesl eval() in ein Objekt umwandeln.
fahrzeug = eval(auto);
console.log(fahrzeug);