Das ist der einfachste Weg um ein Objekt zu erzeugen. Eigenschaften der Objektvariablen werden als Name:Wert -Paar definiert, getrennt mit einem Komma.
Eingeschlossen wird die Anweisung in einem geschweiften Klammernpaar (Anweisungsblock). Die Anweisung kann in einer Zeile stehen oder auch mehrzeilig sein.
Ein einfachs Objektbeispiel
Objekte sind auch Variablen, nur können einer Objektvariablen mehrere Werte zugewiesen werden, diese Werte werden zu Eigenschaften.
PHP-Programmierer wird diese Syntax an ein assoziatives Array erinnern und kann auch so verstanden werden.
let person = { firstName:"Adi", lastName:"Prinz", age:60 };
Eigenschaften nachträglich anfügen
Objekt-Eigenschaften können auch außerhalb der Deklaration geschrieben werden, auch hier gibt es mehrere Schreibarten:
let person = { firstName:"Adi", lastName:"Prinz", age:60 };
person.gender = "männlich";
// Oder so:
// person["gender"] = "männlich";
// Oder so:
// let x = "gender";
// person[x] = "männlich";
person.gender;
Der Zugriff auf eine Objekteigenschaft wird mit dem Objektnamen, einem Punkt und der Eigenschaft geschrieben. Es existiert auch eine alternative Schreibweise
mit eckigen Klammern und Anführungszeichen ["Eigenschaft"].
person.firstName;
// Alternative Schreibweise
person["firstName"];
Methoden werden als Funktion im Objekt definiert. Methoden führen eine Aktion aus sind aber an ein Objekt gebunden.
let person = {
firstName:"Adi",
lastName:"Prinz",
age:60,
fullName:function() {
return this.firstName + " " + this.lastName;
}
};
Der Zugriff auf eine Objektmethode wird mit dem Objektnamen, einem Punkt und dem Namen geschrieben, am Schluss kommt noch der Funktionsparameter.
person.fullName();
Die Sache mit dem this
Innerhalb der Methoden-Deklaration werden die Eigenschaften des Objekts mit dem Schlüsselwort this angesprochen.
this verweist auf die aktuelle Instanz (das ist in diesem Fall das Objekt person .
In diesem Beispiel ist this.firstName äquivalent zu person.firstName .
Damit kann man auch Methoden jederzeit hinzufügen:
let person = {
firstName:"Adi",
lastName:"Prinz",
age:60,
fullName:function() {
return this.firstName + " " + this.lastName;
}
};
person.ausgabe = function() {
return "Mein Name ist " + this.firstName + " " + this.lastName +
" und ich bin " + this.age + " Jahre alt!";
}
person.ausgabe();
Eigenschaften entfernen mit delete
Mit dem delete -Operatot können Eigenschaften entfernt werden.
let person = {
firstName:"Adi",
lastName:"Prinz",
age:60,
fullName:function() {
return this.firstName + " " + this.lastName;
}
};
delete person.age;
person.age;
Dieses Beispiel liefert undefined , denn age existiert nicht mehr.