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 vorhandene 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 zu definierenden oder zu modifizierenden Eigenschaften darstellen, 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 mehr Details).Daten- und Zugriffsbeschreiber können optional folgende Schlüssel enthalten:
configurable
-
true
, wenn und nur wenn der Typ des Eigenschaftsbeschreibers geändert werden darf und wenn die Eigenschaft aus dem entsprechenden Objekt gelöscht werden darf. Standardmäßigfalse
. enumerable
-
true
, wenn und nur wenn diese Eigenschaft bei der Aufzählung der Eigenschaften des entsprechenden Objekts angezeigt wird. Standardmäßigfalse
.
Ein Datendeskriptor hat außerdem folgende optionale Schlüssel:
value
-
Der Wert, der mit der Eigenschaft verknüpft ist. Kann jeder gültige JavaScript-Wert sein (Zahl, Objekt, Funktion usw.). Standardmäßig
undefined
. writable
-
true
, wenn und nur wenn der mit der Eigenschaft verknüpfte Wert mit einem Zuweisungsoperator geändert werden darf. Standardmäßigfalse
.
Ein Zugriffsbeschreiber hat außerdem folgende optionale Schlüssel:
get
-
Eine Funktion, die als Getter für die Eigenschaft dient, oder
undefined
wenn kein Getter vorhanden ist. 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 kein Setter vorhanden ist. Die Funktion erhält als einzigen Parameter den neuen Wert, der der Eigenschaft zugewiesen wird. Standardmäßigundefined
.
Wenn ein Deskriptor weder
value
,writable
,get
nochset
Schlüssel hat, wird er als Datendeskriptor behandelt. Wenn ein Deskriptor 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 |