Datentypen und Objekte in JavaScript
In JavaScript gibt es einfache Datentypen wie Zahlen, Strings, Boolesche Werte
sowie null
und undefined
. Alle anderen Werte sind Objekte: also beispielsweise Arrays, Funktionen, reguläre Ausdrücke und natürlich Objekte sind Objekte. Ein Objekt kann man sich als Container vorstellen, welcher Eigenschaften besitzt. Eine Eigenschaft besteht aus einem Namen und einem Wert. Der Name kann ein beliebiger String sein. Der Eigenschaftswert hingegen kann jeder JavaScript-Wert außer undefined
sein. Ein Objekt ist in JavaScript klassenfrei. Objekte sind sehr nützlich um Daten zu sammeln und zu organisieren. Zudem können Objekte wiederum Objekte beinhalten. Daher können sehr leicht hierarchiesche Strukturen wie etwa Bäume oder Graphen abgebildet werden.
Definition und Verwendung von Objekten
Eine mögliche und vor allem sehr praktische Notation zum Aufbau von neuen Objekten stellen die Objektliterale. Sie kommen beispielsweise auch bei dem JSON-Format zum Einsatz. Ein Objektliteral kann wie folgt definiert werden:
var emptyObject = {}; // leeres Objekt
var nameObject = {
firstname: "Klaus",
lastname: "Moser"
};
Abruf von Werten
Der Abruf von Werten kann entweder über Punktnotation oder aber die [ ]-Suffix-Variante erfolgen. Beides ist möglich. Jedoch führt die Punktnotation meist zu einem übersichtlicheren und kompakteren Code.
nameObject.firstname // "Klaus"
nameObject["lastname"] // "Moser"
Aktualisierung von Werten
Werte in einem Objekt können auch sehr einfach aktualisiert werden. Wenn ein Eigenschaftsname in einem Objekt noch nicht vorhanden ist, so wird das Objekt entsprechend erweitert.
nameObject.firstname = "Karl";
nameObject["middlename"] = "Heinz";
Call by reference
Wichtig zu erwähnen ist, dass Objekte per Referenz übergeben werden. Sie werden nicht kopiert!
var a = { firstname: "Klaus", lastname: "Moser"};
var b = a;
b.lastname = "Müller";
var myLastname = a.lastname;
/* myLastname ist "Müller", da a und b Referenzen auf das gleiche Objekt sind. */