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
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()
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.
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