Datentypen und Objekte in JavaScript

04.05.2009

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. */

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*