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 Namen (auch Schlüssel genannt), der entweder ein string oder ein symbol ist.
  • Einem Wert, der ein beliebiger JavaScript-Wert sein kann. Eine Eigenschaft, die eine Funktion als Wert hat, wird auch oft als Methode bezeichnet.
  • Einige Attribute, die angeben, wie die Eigenschaft gelesen und geschrieben werden kann. Eine Eigenschaft kann die Attribute configurable, enumerable und writable haben.

Accessor-Eigenschaften haben keinen tatsächlichen "Wert". Der Wert wird indirekt über ein Paar von Funktionen repräsentiert, eine (der Getter) wird aufgerufen, wenn der Wert gelesen wird, und eine (der Setter) wird aufgerufen, wenn der Wert gesetzt wird. Accessor-Eigenschaften verhalten sich jedoch wie reguläre Dateneigenschaften auf der Oberfläche, da die Getter- und Setter-Funktionen automatisch aufgerufen werden und typischerweise für JavaScript-Code transparent sind.

Der Wert der Eigenschaft (einschließlich des Getters und Setters) und ihre Attribute werden in einem Datensatz gespeichert, der als Property Descriptor bezeichnet wird. Viele Methoden, wie z.B. Object.getOwnPropertyDescriptor() und Object.defineProperty(), arbeiten mit Property Descriptors.

Der Begriff Eigenschaft selbst entspricht keinem JavaScript-Wert — es ist ein abstraktes Konzept. Zum Beispiel im folgenden Code:

js
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 Assoziationen "a"1, "b"function sind die Eigenschaften des Objekts.

Im Kontext von Klassen können Eigenschaften in Instanzeigenschaften unterteilt werden, die von jeder Instanz gehalten werden, und statische Eigenschaften, die von der Klasse gehalten werden und Daten enthalten, die allen Instanzen gemeinsam sind. Im Kontext von Vererbung können Eigenschaften auch in eigene Eigenschaften unterteilt werden, die vom Objekt selbst gehalten werden, und geerbte Eigenschaften, die von Objekten in der Prototypkette des Objekts gehalten werden.

Für weitere Informationen über das Lesen und Schreiben von Eigenschaften, siehe Arbeiten mit Objekten.

Siehe auch