Object.defineProperties()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die statische Methode Object.defineProperties() definiert neue Eigenschaften direkt auf einem Objekt oder ändert vorhandene Eigenschaften 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, auf dem Eigenschaften definiert oder geändert werden sollen.
props-
Ein Objekt, dessen Schlüssel die Namen der zu definierenden oder zu ändernden Eigenschaften sind und dessen Werte diese Eigenschaften beschreiben. Jeder Wert in
propsmuss entweder ein Datendeskriptor oder ein Accessor-Deskriptor sein; beides zugleich ist nicht möglich (weitere Einzelheiten finden Sie unterObject.defineProperty()).Datendeskriptoren und Accessor-Deskriptoren können optional die folgenden Schlüssel enthalten:
configurable-
truegenau dann, wenn der Typ dieses Eigenschaftsdeskriptors geändert und die Eigenschaft aus dem entsprechenden Objekt gelöscht werden darf. Der Standardwert istfalse. enumerable-
truegenau dann, wenn diese Eigenschaft bei der Aufzählung der Eigenschaften des entsprechenden Objekts erscheint. Der Standardwert istfalse.
Ein Datendeskriptor kann außerdem die folgenden optionalen Schlüssel enthalten:
value-
Der mit der Eigenschaft verknüpfte Wert. Dies kann jeder gültige JavaScript-Wert sein (Zahl, Objekt, Funktion usw.). Der Standardwert ist
undefined. writable-
truegenau dann, wenn der mit der Eigenschaft verknüpfte Wert mit einem assignment operator geändert werden darf. Der Standardwert istfalse.
Ein Accessor-Deskriptor kann außerdem die folgenden optionalen Schlüssel enthalten:
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. Der Standardwert istundefined. set-
Eine Funktion, die als Setter für die Eigenschaft dient, oder
undefined, wenn kein Setter vorhanden ist. Die Funktion erhält den neuen Wert, der der Eigenschaft zugewiesen wird, als einziges Argument. Der Standardwert istundefined.
Wenn ein Deskriptor keinen der Schlüssel
value,writable,getundsetenthält, wird er als Datendeskriptor behandelt. Wenn ein Deskriptor sowohlvalueoderwritableals auchgetodersetenthält, wird eine Ausnahme ausgelöst.
Rückgabewert
Das Objekt, das an die Funktion übergeben wurde.
Beispiele
>Object.defineProperties verwenden
const obj = {};
Object.defineProperties(obj, {
property1: {
value: true,
writable: true,
},
property2: {
value: "Hello",
writable: false,
},
// etc. etc.
});
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-object.defineproperties> |