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 ähnlich wie Object.getOwnPropertyDescriptor()
. Sie gibt eine Eigenschaftsbeschreibung der angegebenen Eigenschaft zurück, falls diese auf dem Objekt vorhanden ist, oder undefined
, falls nicht.
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 wird.
propertyKey
-
Der Name der Eigenschaft, für die ein eigener Eigenschaftsbeschreiber abgerufen werden soll.
Rückgabewert
Ein Eigenschaftsbeschreibeobjekt, falls 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 zum Abrufen der Eigenschaftsbeschreibung 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 in ein Objekt umwandelt.
Reflect.getOwnPropertyDescriptor()
ruft die [[GetOwnProperty]]
interne Objekt-Methode des 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()
Falls das Argument target
dieser Methode kein Objekt (z. B. ein Primitive) ist, führt dies zu einem TypeError
. Bei Object.getOwnPropertyDescriptor
würde das nicht-Objekt-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® 2025 Language Specification # sec-reflect.getownpropertydescriptor |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
getOwnPropertyDescriptor |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support