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 April 2017.
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
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. Kann ein leeres Objekt sein, wenn keine Eigenschaften vorhanden sind.
Beschreibung
Diese Methode erlaubt die genaue Untersuchung der Beschreibung aller eigenen Eigenschaften eines Objekts. Eine Property in JavaScript besteht entweder aus einem stringwertigen Namen oder einem Symbol
und einem Property Deskriptor. Weitere Informationen über Property Deskriptor-Typen und deren Attribute finden Sie in Object.defineProperty()
.
Ein Property Deskriptor ist ein Datensatz mit einigen der folgenden Attribute:
value
-
Der mit der Eigenschaft verknüpfte Wert (nur Data Deskriptoren).
writable
-
true
, wenn und nur wenn der mit der Eigenschaft verknüpfte Wert geändert werden kann (nur Data Deskriptoren). get
-
Eine Funktion, die als Getter für die Eigenschaft dient, oder
undefined
wenn kein Getter vorhanden ist (nur Accessor Deskriptoren). set
-
Eine Funktion, die als Setter für die Eigenschaft dient, oder
undefined
wenn kein Setter vorhanden ist (nur Accessor Deskriptoren). configurable
-
true
, wenn und nur wenn der Typ dieses Property Deskriptors geändert werden kann und wenn die Eigenschaft aus dem entsprechenden Objekt gelöscht werden darf. enumerable
-
true
, wenn und nur wenn diese Eigenschaft während der Auflistung der Eigenschaften des entsprechenden Objekts angezeigt wird.
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 mit dieser Methode und Object.create()
eine flache Kopie zwischen zwei unbekannten Objekten erstellen:
Object.create(
Object.getPrototypeOf(obj),
Object.getOwnPropertyDescriptors(obj),
);
Erstellen einer Unterklasse
Eine typische Methode zur Erstellung einer Unterklasse ist es, die Unterklasse zu definieren, ihr Prototyp auf eine Instanz der Oberklasse zu setzen und dann Eigenschaften auf dieser Instanz zu definieren. Dies kann besonders für Getter und Setter umständlich werden. Stattdessen können Sie diesen Code verwenden, um das Prototyp-Objekt zu setzen:
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® 2026 Language Specification # sec-object.getownpropertydescriptors |