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
verändert 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 verändert werden sollen.
props
-
Ein Objekt, dessen Schlüssel die Namen der zu definierenden oder zu verändernden Eigenschaften darstellen und dessen Werte Objekte sind, die diese Eigenschaften beschreiben. Jeder Wert in
props
muss entweder ein Daten- oder Zugriffsbeschreiber sein; er kann nicht beides gleichzeitig 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 die Eigenschaft vom entsprechenden Objekt gelöscht werden kann. Standardmäßigfalse
. enumerable
-
true
wenn und nur wenn diese Eigenschaft während der Aufzählung der Eigenschaften auf dem entsprechenden Objekt sichtbar wird. Standardmäßigfalse
.
Ein Datenbeschreiber hat auch die folgenden optionalen Schlüssel:
value
-
Der Wert, der mit der Eigenschaft verbunden ist. Kann jeder gültige JavaScript-Wert sein (Zahl, Objekt, Funktion, etc.). Standardmäßig
undefined
. writable
-
true
wenn und nur wenn der Wert, der mit der Eigenschaft verbunden ist, mit einem Zuweisungsoperator geändert werden kann. Standardmäßigfalse
.
Ein Zugriffsbeschreiber hat auch 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. Standardmäßigundefined
. 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. Standardmäßigundefined
.
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 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® 2025 Language Specification # sec-object.defineproperties |
Browser-Kompatibilität
BCD tables only load in the browser