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 Object.defineProperties()
statische Methode definiert neue oder modifiziert bestehende Eigenschaften direkt an einem Objekt und gibt das Objekt zurück.
Probieren Sie es aus
const object = {};
Object.defineProperties(object, {
property1: {
value: 42,
writable: true,
},
property2: {},
});
console.log(object.property1);
// Expected output: 42
Syntax
Object.defineProperties(obj, props)
Parameter
obj
-
Das Objekt, an 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 Daten- oder ein Zugriffsbeschreiber sein; es kann nicht beides sein (sieheObject.defineProperty()
für mehr 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 darf und wenn die Eigenschaft aus dem entsprechenden Objekt gelöscht werden darf. Standard istfalse
. enumerable
-
true
, wenn und nur wenn diese Eigenschaft während der Enumeration der Eigenschaften des entsprechenden Objekts angezeigt wird. Standard istfalse
.
Ein Datenbeschreiber hat außerdem die folgenden optionalen Schlüssel:
value
-
Der Wert, der mit der Eigenschaft verbunden ist. Kann ein beliebiger gültiger JavaScript-Wert sein (Zahl, Objekt, Funktion, etc.). Standard ist
undefined
. writable
-
true
, wenn und nur wenn der mit der Eigenschaft verbundene Wert mit einem assignment operator geändert werden kann. Standard istfalse
.
Ein Zugriffsbeschreiber hat ebenfalls 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. Standard istundefined
. set
-
Eine Funktion, die als Setter für die Eigenschaft dient, oder
undefined
, wenn es keinen Setter gibt. Die Funktion erhält als einzigen Parameter den neuen Wert, der der Eigenschaft zugewiesen wird. Standard istundefined
.
Wenn ein Beschreiber weder
value
,writable
,get
nochset
Schlüssel hat, wird er als Datenbeschreiber behandelt. Wenn ein Beschreiber sowohlvalue
oderwritable
als auchget
oderset
Schlüssel hat, wird eine Ausnahme ausgelöst.
Rückgabewert
Das Objekt, das der Funktion übergeben wurde.
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 |