Property (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 Name (auch Schlüssel genannt), der entweder ein String oder ein Symbol ist.
- Einem Wert, der jeden beliebigen JavaScript-Wert sein kann. Eine Eigenschaft, die eine Funktion als Wert hat, kann auch als Methode bezeichnet werden.
- Einige Attribute, die angeben, wie die Eigenschaft gelesen und geschrieben werden kann. Eine Eigenschaft kann die Attribute
configurable
,enumerable
undwritable
haben.
Zugriffseigenschaften haben keinen tatsächlichen "Wert". Der Wert wird indirekt durch ein Paar von Funktionen dargestellt: eine (der Getter), die beim Lesen des Wertes aufgerufen wird, und eine (der Setter), die beim Setzen des Wertes aufgerufen wird. Zugriffseigenschaften verhalten sich jedoch oberflächlich wie gewöhnliche Dateneigenschaften, da die Getter- und Setter-Funktionen automatisch aufgerufen werden und typischerweise in JavaScript-Code transparent sind.
Der Wert der Eigenschaft (einschließlich Getter und Setter) und ihre Attribute werden in einem Datenrekord gespeichert, der 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 (mit der Methoden-Syntax). Die Assoziationen "a"
– 1
, "b"
– function
sind die Eigenschaften des Objekts.
Im Kontext von Klassen können Eigenschaften in Instanzeigenschaften unterteilt werden, die jedem Instanz zugeordnet sind, und statische Eigenschaften, die der Klasse zugeordnet sind und Daten beinhalten, die allen Instanzen gemeinsam sind. Im Kontext von Vererbung können Eigenschaften ebenfalls in eigene Eigenschaften, die dem Objekt selbst gehören, und geerbte Eigenschaften unterteilt werden, die Objekten in der Prototypenkette des Objekts gehören.
Für mehr Informationen über das Lesen und Schreiben von Eigenschaften siehe Arbeiten mit Objekten.