Property (JavaScript)
Eine JavaScript-Eigenschaft ist Mitglied eines Objekts, das einen Schlüssel mit einem Wert verknüpft. Ein JavaScript-Objekt ist eine Datenstruktur, die eine Sammlung von Eigenschaften speichert.
Eine Eigenschaft besteht aus den folgenden Teilen:
- Einem Namen (auch als Schlüssel bezeichnet), der entweder ein String oder ein Symbol ist.
- Einem Wert, der jeder JavaScript-Wert sein kann. Eine Eigenschaft, die eine Funktion als Wert hat, kann auch als Methode bezeichnet werden.
- Einigen Attributen, die festlegen, wie die Eigenschaft gelesen und geschrieben werden kann. Eine Eigenschaft kann die Attribute
configurable
,enumerable
undwritable
haben.
Accessor-Eigenschaften haben keinen tatsächlichen "Wert". Der Wert wird indirekt durch ein Funktionspaar dargestellt, wobei eine (der Getter) beim Lesen des Wertes und eine (der Setter) beim Setzen des Wertes aufgerufen wird. Jedoch verhalten sich Accessor-Eigenschaften wie normale Dateneigenschaften an der Oberfläche, da die Getter- und Setter-Funktionen automatisch aufgerufen werden und in der Regel für JavaScript-Code transparent sind.
Der Wert der Eigenschaft (einschließlich des Getters und Setters) und ihre Attribute werden in einem Datenprotokoll gespeichert, das als Eigenschaftsdescriptor bezeichnet wird. Viele Methoden, wie Object.getOwnPropertyDescriptor()
und Object.defineProperty()
, arbeiten mit Eigenschaftsdeskriptoren.
Der Begriff Eigenschaft selbst entspricht keinem JavaScript-Wert – es ist ein abstraktes Konzept. Zum Beispiel im folgenden Code:
const obj = {
a: 1,
b() {},
};
Das Objekt obj
hat zwei Eigenschaften. Die erste hat "a"
als Schlüssel und 1
als Wert. Die zweite hat "b"
als Schlüssel und eine Funktion als Wert (unter Verwendung der Methodensyntax). Die Verknüpfungen "a"
– 1
, "b"
– function
sind die Eigenschaften des Objekts.
Im Kontext von Klassen können Eigenschaften in Instanzeigenschaften unterteilt werden, die von jeder Instanz besessen werden, und statische Eigenschaften, die von der Klasse besessen werden und Daten enthalten, die für alle Instanzen gemeinsam sind. Im Kontext von Vererbung können Eigenschaften auch in eigene Eigenschaften, die dem Objekt selbst gehören, und geerbte Eigenschaften, die Objekten in der Prototypenkette des Objekts gehören, unterteilt werden.
Für weitere Informationen zum Lesen und Schreiben von Eigenschaften siehe Arbeiten mit Objekten.