Eigenschaft (JavaScript)
Eine JavaScript-Eigenschaft ist ein 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 Schlüssel genannt), der entweder ein String oder ein Symbol ist.
- Einem Wert, der jeder JavaScript-Wert sein kann. Eine Eigenschaft, deren Wert eine Funktion ist, wird auch als Methode bezeichnet.
- Einige Attribute, 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 die andere (der Setter) beim Schreiben des Wertes aufgerufen wird. Trotzdem verhalten sich Accessor-Eigenschaften an der Oberfläche wie normale Dateneigenschaften, 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 Getter und Setter) und ihre Attribute werden in einem Datenprotokoll, genannt Property Descriptor, gespeichert. Viele Methoden, wie Object.getOwnPropertyDescriptor()
und Object.defineProperty()
, arbeiten mit diesen Property Descriptors.
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 Zuordnungen "a"
– 1
, "b"
– function
sind die Eigenschaften des Objekts.
Im Kontext von Klassen können Eigenschaften in Instanz-Eigenschaften, die jedem Exemplar gehören, und statische Eigenschaften unterteilt werden, die der Klasse gehören und Daten enthalten, die für alle Exemplare 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 Prototypkette des Objekts gehören, unterteilt werden.
Für mehr Informationen über das Lesen und Schreiben von Eigenschaften, siehe Arbeiten mit Objekten.