Reflect.getOwnPropertyDescriptor()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.

Die statische Methode Reflect.getOwnPropertyDescriptor() ähnelt Object.getOwnPropertyDescriptor(). Sie gibt einen Eigenschaftsdescriptor der angegebenen Eigenschaft zurück, wenn sie auf dem Objekt existiert, andernfalls undefined.

Probieren Sie es aus

Syntax

js
Reflect.getOwnPropertyDescriptor(target, propertyKey)

Parameter

target

Das Zielobjekt, in dem nach der Eigenschaft gesucht wird.

propertyKey

Der Name der Eigenschaft, für die ein eigener Eigenschaftsdescriptor abgerufen werden soll.

Rückgabewert

Ein Eigenschaftsdescriptor-Objekt, wenn die Eigenschaft als eigene Eigenschaft von target existiert; andernfalls undefined.

Ausnahmen

TypeError

Wird ausgelöst, wenn target kein Objekt ist.

Beschreibung

Reflect.getOwnPropertyDescriptor() bietet die reflexive Semantik, um den Eigenschaftsdescriptor eines Objekts abzurufen. Der einzige Unterschied zu Object.getOwnPropertyDescriptor() besteht darin, wie nicht-objektartige Ziele behandelt werden. Reflect.getOwnPropertyDescriptor() löst einen TypeError aus, wenn das Ziel kein Objekt ist, während Object.getOwnPropertyDescriptor() es zu einem Objekt umwandelt.

Reflect.getOwnPropertyDescriptor() ruft die [[GetOwnProperty]] interne Objektmethode von target auf.

Beispiele

Verwenden von Reflect.getOwnPropertyDescriptor()

js
Reflect.getOwnPropertyDescriptor({ x: "hello" }, "x");
// {value: "hello", writable: true, enumerable: true, configurable: true}

Reflect.getOwnPropertyDescriptor({ x: "hello" }, "y");
// undefined

Reflect.getOwnPropertyDescriptor([], "length");
// {value: 0, writable: true, enumerable: false, configurable: false}

Unterschied zu Object.getOwnPropertyDescriptor()

Wenn das target-Argument dieser Methode kein Objekt (ein primitiver Wert) ist, wird ein TypeError verursacht. Bei Object.getOwnPropertyDescriptor wird ein nicht-Objekt-erstes Argument zuerst in ein Objekt umgewandelt.

js
Reflect.getOwnPropertyDescriptor("foo", 0);
// TypeError: "foo" is not non-null object

Object.getOwnPropertyDescriptor("foo", 0);
// { value: "f", writable: false, enumerable: true, configurable: false }

Spezifikationen

Specification
ECMAScript Language Specification
# sec-reflect.getownpropertydescriptor

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch