Objekte
Ziele
- Du kennst die verschiedenen Arten, um Objekte zu erstellen.
- Du kennst die unterschiedlichen Arten, die Attribute eines Objektes abzufragen.
- Du kannst Objekt-Eigenschaften anpassen und Objekten auch neue Eigenschaften beifügen.
- Du kannst Objekte in einen JSON-String kodieren und einen JSON-String in ein Objekt dekodieren.
- Du, weisst, wofür der Spread-Operator gebraucht wird und wie er angewandt wird.
Objekte
Ein Objekt ist eine Sammlung von Eigenschaften, die eine Entität repräsentieren.
Objekte können verschiedene Datentypen enthalten, einschließlich anderen Objekten, Arrays, Strings, Zahlen und booleschen Werten.
|
|
Objekt erstellen
Man kann Objekte auf zwei unterschiedliche Arten erstellen. Zum einen mit der Objektliteral-Syntax und zum anderen mit der Konstruktor-Syntax.
Objektliteral-Syntax
Die einfachere und auch gängigere Methode ist die Objektliteral-Syntax. Bei dieser Methode können die Eigenschaften und Werte direkt innerhalb geschweifter Klammern angeben werden:
|
|
Konstruktor-Syntax.
Die zweite Möglichkeit, ein neues Objekt zu erstellen, besteht darin, einen Konstruktor zu verwenden:
|
|
Man kann auch Methoden (Funktionen) innerhalb eines Objekts hinzufügen, indem man sie als Eigenschaften definiert:
|
|
Eigenschaften von Objekten abfragen
Um die Eigenschaften eines Objekts abzurufen, gibt es zwei Möglichkeiten:
- Die Punkt-Notation,
- und die Klammern-Notation.
Punkt-Notation
Eine bestimmte Eigenschaft (property
) kann abgefragt werden, indem nach dem Objektaufruf ein Punkt .
angehängt wird und der Name der Eigenschaft folgt:
|
|
Klammern-Notation
Im Gegensatz zur Punkt-Notation wird bei der Klammern-Notation der Name der Eigenschaft als String übergeben:
|
|
Auch Methoden (Funktionen) innerhalb eines Objekts können über die Punkt- oder Klammer-Notation aufgerufen werden:
|
|
Die Klammer-Notation kann zu mehr Flexibilität und Wiederverwendbarkeit von Code führen. Wenn wir beispielsweise eine Funktion generell für Objekte schreiben und bestimmte Dinge mit bestimmten Eigenschaften durchführen möchten, die wir später separat angeben können möchten:
|
|
In den meisten Fällen empfiehlt es sich aber, auf so ein “Gebastel” zu verzichten, da der Code für andere Personen so schnell sehr unverständlich wird.
Objekte updaten
Um Eigenschaften von Objekten anzupassen, können wieder sowohl die Punkt-Notation als auch die Klammer-Notation verwendet werden:
|
|
Hinzufügen neuer Eigenschaften
Um eine neue Eigenschaft zu einem Objekt hinzuzufügen, muss lediglich ein Wert mit einem neuen Eigenschaftsnamen zugewiesen werden:
|
|
JSON
JSON (JavaScript Object Notation) ist ein Textformat zum Austausch von Daten. Es wird oft in der Webprogrammierung verwendet, um Daten zwischen einem Client und einem Server auszutauschen.
Objekte können in JavaScript mittels JSON serialisiert und deserialisiert werden. Ein JavaScript-Objekt besteht wesentlich aus einer Sammlung von Schlüssel-Wert-Paaren. Ein JSON-Objekt ist ein String, der diese Schlüssel-Wert-Paare in einem strukturierten JSON-Format enthält.
Es ist wichtig zu beachten, dass JSON nur bestimmte Datentypen unterstützt, darunter Zeichenfolgen, Zahlen, Booleans, null, Arrays und Objekte. Funktionen und undefinierte Werte können nicht in JSON serialisiert werden.
Objekt in JSON-String umwandeln
Um ein JavaScript-Objekt in JSON zu kodieren, kann die Methode JSON.stringify()
verwendet werden. Diese Methode nimmt das JavaScript-Objekt als Argument und gibt einen String
zurück, der das Objekt im JSON-Format darstellt:
|
|
JSON-String in Objekt dekodieren
Um eine JSON-Zeichenfolge in ein JavaScript-Objekt zu dekodieren, kann die Methode JSON.parse()
verwendet werden. Diese Methode nimmt die JSON-Zeichenfolge als Argument und gibt ein JavaScript-Objekt zurück:
|
|
Spread Operator
Der Spread-Operator ist ein Operator in JavaScript, der es ermöglicht, ein Array oder einen Objekt-Literal-Ausdruck in eine Liste von Argumenten zu “entpacken”. Der Operator wird durch drei Punkte (...
) dargestellt.
Der Spread-Operator wird in diesem Beispiel verwendet, um die Arrays in eine Liste von Elementen zu “entpacken”. Dadurch können diese einfach zusammengeführt oder kopiert werden.
|
|
Das Gleiche gilt auch für Objekte.
|
|
Der Operator kann auch zum Erstellen von Kopien von Arrays oder Objekten verwendet werden, anstatt sie zu ändern.
|
|
Der Operator kann auch als Parameter in einem Funktionsaufruf verwendet werden. Dadurch können Argumente einer Funktion als einzelne Werte an die Funktion übergeben werden, anstatt als Array oder Objekt.
Wenn der Spread-Operator als Parameter verwendet wird, müssen die anderen Parameter vor ihm stehen, da er alle verbleibenden Argumente “entpackt”.
|
|
Im Parameter ist er besonders nützlich, wenn eine Funktion eine variable Anzahl von Argumenten akzeptieren soll:
|
|