Object.getOwnPropertyDescriptors()

Baseline Widely available

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

We'd love to hear more about your role and the company you work for
Please help us by answering a few questions.

Die statische Methode Object.getOwnPropertyDescriptors() gibt alle eigenen Property Deskriptoren eines gegebenen Objekts zurück.

Probieren Sie es aus

const object1 = {
  property1: 42,
};

const descriptors1 = Object.getOwnPropertyDescriptors(object1);

console.log(descriptors1.property1.writable);
// Expected output: true

console.log(descriptors1.property1.value);
// Expected output: 42

Syntax

js
Object.getOwnPropertyDescriptors(obj)

Parameter

obj

Das Objekt, für das alle eigenen Property Deskriptoren abgerufen werden sollen.

Rückgabewert

Ein Objekt, das alle eigenen Property Deskriptoren eines Objekts enthält. Könnte ein leeres Objekt sein, wenn es keine Eigenschaften gibt.

Beschreibung

Diese Methode ermöglicht die Untersuchung der genauen Beschreibung aller eigenen Eigenschaften eines Objekts. Eine Eigenschaft in JavaScript besteht entweder aus einem Zeichenfolgenwertnamen oder einem Symbol und einem Property Deskriptor. Weitere Informationen über Property Deskriptor Arten und deren Attribute finden Sie in Object.defineProperty().

Ein Property Deskriptor ist ein Datensatz mit einigen der folgenden Attribute:

value

Der mit der Eigenschaft verbundene Wert (nur Datendeskriptoren).

writable

true genau dann, wenn der mit der Eigenschaft verbundene Wert geändert werden darf (nur Datendeskriptoren).

get

Eine Funktion, die als Getter für die Eigenschaft dient, oder undefined, wenn es keinen Getter gibt (nur Zugriffsbeschreibungen).

set

Eine Funktion, die als Setter für die Eigenschaft dient, oder undefined, wenn es keinen Setter gibt (nur Zugriffsbeschreibungen).

configurable

true genau dann, wenn der Typ dieses Property Deskriptors geändert werden darf und die Eigenschaft aus dem entsprechenden Objekt gelöscht werden kann.

enumerable

true genau dann, wenn diese Eigenschaft während der Aufzählung der Eigenschaften auf dem entsprechenden Objekt erscheint.

Beispiele

Erstellen einer flachen Kopie

Während die Methode Object.assign() nur aufzählbare und eigene Eigenschaften von einem Quellobjekt auf ein Zielobjekt kopiert, können Sie diese Methode und Object.create() für eine flache Kopie zwischen zwei unbekannten Objekten verwenden:

js
Object.create(
  Object.getPrototypeOf(obj),
  Object.getOwnPropertyDescriptors(obj),
);

Erstellen einer Unterklasse

Eine übliche Methode zur Erstellung einer Unterklasse besteht darin, die Unterklasse zu definieren, ihr Prototyp auf eine Instanz der Oberklasse zu setzen und dann Eigenschaften auf dieser Instanz zu definieren. Dies kann besonders bei Gettern und Settern umständlich werden. Stattdessen können Sie diesen Code verwenden, um den Prototypen festzulegen:

js
function superclass() {}
superclass.prototype = {
  // Define the superclass constructor, methods, and properties here
};
function subclass() {}
subclass.prototype = Object.create(superclass.prototype, {
  // Define the subclass constructor, methods, and properties here
});

Spezifikationen

Specification
ECMAScript® 2025 Language Specification
# sec-object.getownpropertydescriptors

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
getOwnPropertyDescriptors

Legend

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

Full support
Full support

Siehe auch