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 ä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 die Eigenschaften definiert oder geändert werden sollen.
props
-
Ein Objekt, dessen Schlüssel die Namen der zu definierenden oder zu ändernden Eigenschaften darstellen und dessen Werte Objekte sind, die diese Eigenschaften beschreiben. Jeder Wert in
props
muss entweder ein Daten-Deskriptor oder ein Zugriff-Deskriptor sein; es kann nicht beides sein (sieheObject.defineProperty()
für weitere Details).Daten-Deskriptoren und Zugriff-Deskriptoren können optional die folgenden Schlüssel enthalten:
configurable
-
true
, wenn und nur wenn dieser Eigenschafts-Deskriptor geändert werden kann und die Eigenschaft vom entsprechenden Objekt gelöscht werden darf. Standardmäßigfalse
. enumerable
-
true
, wenn und nur wenn diese Eigenschaft bei der Enumeration der Eigenschaften auf dem entsprechenden Objekt angezeigt wird. Standardmäßigfalse
.
Ein Daten-Deskriptor hat außerdem die folgenden optionalen Schlüssel:
value
-
Der mit der Eigenschaft verknüpfte Wert. Kann jeden gültigen JavaScript-Wert enthalten (Nummer, Objekt, Funktion, etc.). 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 Zugriff-Deskriptor hat außerdem die folgenden optionalen 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
enthält, wird er als Daten-Deskriptor behandelt. Wenn ein Deskriptor sowohl die Schlüsselvalue
oderwritable
als auchget
oderset
enthält, 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® 2025 Language Specification # sec-object.defineproperties |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
defineProperties |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support