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

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

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

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.

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® 2025 Language Specification
# sec-reflect.getownpropertydescriptor

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
getOwnPropertyDescriptor

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch