Object.defineProperties()
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.
Die statische Methode Object.defineProperties()
definiert neue oder
modifiziert bestehende Eigenschaften direkt auf einem Objekt und gibt das Objekt zurück.
Probieren Sie es aus
const object1 = {};
Object.defineProperties(object1, {
property1: {
value: 42,
writable: true,
},
property2: {},
});
console.log(object1.property1);
// Expected output: 42
Syntax
Object.defineProperties(obj, props)
Parameter
obj
-
Das Objekt, auf dem Eigenschaften definiert oder modifiziert werden sollen.
props
-
Ein Objekt, dessen Schlüssel die Namen der Eigenschaften repräsentieren, die definiert oder modifiziert werden sollen, und dessen Werte Objekte sind, die diese Eigenschaften beschreiben. Jeder Wert in
props
muss entweder ein Datendeskriptor oder ein Zugriffsbeschreiber sein; es kann nicht beides sein (sieheObject.defineProperty()
für weitere Details).Daten- und Zugriffsbeschreiber können optional die folgenden Schlüssel enthalten:
configurable
-
true
, wenn und nur wenn der Typ dieses Eigenschaftsbeschreibers geändert werden kann und wenn die Eigenschaft vom entsprechenden Objekt gelöscht werden kann. Standardwert istfalse
. enumerable
-
true
, wenn und nur wenn diese Eigenschaft während der Aufzählung der Eigenschaften auf dem entsprechenden Objekt angezeigt wird. Standardwert istfalse
.
Ein Datendeskriptor hat außerdem die folgenden optionalen Schlüssel:
value
-
Der Wert, der mit der Eigenschaft verknüpft ist. Kann jeder gültige JavaScript-Wert sein (Zahl, Objekt, Funktion, etc.). Standardwert ist
undefined
. writable
-
true
, wenn und nur wenn der mit der Eigenschaft verknüpfte Wert durch einen Zuweisungsoperator geändert werden kann. Standardwert istfalse
.
Ein Zugriffsbeschreiber hat außerdem die folgenden optionalen Schlüssel:
get
-
Eine Funktion, die als Getter für die Eigenschaft dient, oder
undefined
, wenn es keinen Getter gibt. Der Rückgabewert der Funktion wird als Wert der Eigenschaft verwendet. Standardwert istundefined
. set
-
Eine Funktion, die als Setter für die Eigenschaft dient, oder
undefined
, wenn es keinen Setter gibt. Die Funktion erhält als einziges Argument den neuen Wert, der der Eigenschaft zugewiesen wird. Standardwert istundefined
.
Wenn ein Deskriptor weder über
value
nochwritable
,get
undset
Schlüssel verfügt, wird er als Datendeskriptor behandelt. Wenn ein Deskriptor sowohlvalue
oderwritable
als auchget
oderset
Schlüssel besitzt, wird eine Ausnahme ausgelöst.
Rückgabewert
Das an die Funktion übergebene Objekt.
Beispiele
Verwendung von Object.defineProperties
const obj = {};
Object.defineProperties(obj, {
property1: {
value: true,
writable: true,
},
property2: {
value: "Hello",
writable: false,
},
// etc. etc.
});
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-object.defineproperties |