Wie die Arrays, die im Quellcode mit eckigen Klammern [ ]
erzeugt werden können,
haben einfache Objekte in Javascript eine eigene literale Schreibweise, die die geschweiften Klammern
{ }
benutzt.
JavaScript// create empty object
const obj = {};
// create object with properties
const dot = {
x: 100,
y: 100,
size: 40,
color: 'black',
};
Objekt-Eigenschaften können entweder mit der .
-Syntax oder mit eckigen Klammern [ ]
beliebig
zugewiesen (d.h. erzeugt oder überschrieben), verändert und ausgelesen werden.
JavaScript// create empty object (this time with 'new' instead of '{}')
const obj = new Object();
// assign, modify and access property using the '.'-syntax
obj.count = 0;
obj.count += 7;
let count = obj.count; // is 7
// assign, modify and access property using the '[]'-syntax
obj['count'] = 0;
obj['count'] += 7;
count = obj['count']; // is 7
Mit delete
können Eigenschaften wieder aus einem Objekt gelöscht werden.
JavaScriptconst obj = { count: 7 };
delete obj.count;
Objekte und Arrays können beliebig verschachtelt werden.
JavaScriptconst song = {
title: "Over the Rainbow",
composer: "Harold Arlen",
lyrics: "Yip Harburg",
year: 1939,
singer: "Judy Garland",
versions: [
{
artist: "Israel Kamakawiwo'ole",
year: 1993,
},
{
artist: "Cliff Richard",
year: 2001,
},
{
artist: "Danielle Hope",
year: 2010,
},
{
artist: "Ariana Grande",
year: 2017,
},
],
};
Hierbei werden immer nur Referenzen auf Objekte gespeichert, sodass ein Objekt, das einer Variable oder einer Eigenschaft eines anderen Objekts zugewiesen wird, nie kopiert, sondern nur eine Referenz darauf eingefügt wird.
JavaScriptlet o = { a: 1, b: 2, c: 3 };
let p = o;
p.d = 4; // { a: 1, b: 2, c: 3, d: 4}
console.log(o.d); // 4
Die Object
Basis-Klasse stellt einige hilfreiche Methoden zur Verfügung:
Methode | Beschreibung |
---|---|
keys() | gibt einen Array der Eigenschaften des Objects zurück |
values() | gibt einen Array der Werte der Eigenschaften des Objects zurück |
entries() | gibt einen Array von Key-Value-Paaren der Eigenschaften des Objects zurück |
assign(target, ... sources) | kopiert die Werte der Eigenschaften eines oder mehrerer Quell-Objekte |
JavaScriptconst dot = {
x: 100,
y: 100,
size: 40,
color: 'black',
};
for (let [key, value] of Object.entries(dot)) {
console.log(`${key} is ${value}`);
}
Javascript stellt eine Reihe vordefinierter Klassen zur Verfügung um komplexe Datentypen darzustellen, wie z.B.:
Klasse | Beschreibung | Syntax |
---|---|---|
Object | grundlegende Objekt-Klasse | { } |
Array | Array | [ ] |
String | Zeichenkette | " " oder ' ' oder ` ` |
RegExp | Regular Expression | \ \ |
Set | Sammlung beliebiger Werte | |
Map | Sammlung von Key-Value-Paaren |