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()
ist wie Object.getOwnPropertyDescriptor()
. Sie gibt einen Property-Deskriptor der angegebenen Eigenschaft zurück, wenn diese auf dem Objekt existiert, ansonsten undefined
.
Probieren Sie es aus
const object1 = {
property1: 42,
};
console.log(Reflect.getOwnPropertyDescriptor(object1, "property1").value);
// Expected output: 42
console.log(Reflect.getOwnPropertyDescriptor(object1, "property2"));
// Expected output: undefined
console.log(Reflect.getOwnPropertyDescriptor(object1, "property1").writable);
// Expected output: true
Syntax
Reflect.getOwnPropertyDescriptor(target, propertyKey)
Parameter
target
-
Das Zielobjekt, in dem nach der Eigenschaft gesucht werden soll.
propertyKey
-
Der Name der Eigenschaft, für die ein eigener Property-Deskriptor abgerufen werden soll.
Rückgabewert
Ein Property-Deskriptor-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 reflektive Semantik zum Abrufen des Property-Deskriptors eines Objekts. Der einzige Unterschied zu Object.getOwnPropertyDescriptor()
besteht darin, wie nicht-Objekt-Ziele behandelt werden. Reflect.getOwnPropertyDescriptor()
löst einen TypeError
aus, wenn das Ziel kein Objekt ist, während Object.getOwnPropertyDescriptor()
es zu einem Objekt zwingt.
Reflect.getOwnPropertyDescriptor()
ruft die [[GetOwnProperty]]
interne Methode des Objekts von target
auf.
Beispiele
Verwendung 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 Argument target
dieser Methode kein Objekt ist (ein primitiver Wert), wird ein TypeError
verursacht. Bei Object.getOwnPropertyDescriptor
wird ein nicht-objektes erstes Argument zunächst 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® 2026 Language Specification # sec-reflect.getownpropertydescriptor |