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

js
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 (siehe Object.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äßig false.

enumerable

true wenn und nur wenn diese Eigenschaft während der Aufzählung der Eigenschaften auf dem entsprechenden Objekt sichtbar wird. Standardmäßig false.

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äßig false.

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äßig undefined.

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äßig undefined.

Wenn ein Beschreiber weder value, writable, get noch set Schlüssel hat, wird er als Datenbeschreiber behandelt. Wenn ein Beschreiber sowohl value oder writable als auch get oder set Schlüssel hat, wird eine Ausnahme ausgelöst.

Rückgabewert

Das an die Funktion übergebene Objekt.

Beispiele

Verwendung von Object.defineProperties

js
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

Siehe auch