Reflect.preventExtensions()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.

Die Reflect.preventExtensions() statische Methode ist vergleichbar mit Object.preventExtensions(). Sie verhindert, dass jemals neue Eigenschaften zu einem Objekt hinzugefügt werden (d.h. sie verhindert zukünftige Erweiterungen des Objekts).

Probieren Sie es aus

const object1 = {};

console.log(Reflect.isExtensible(object1));
// Expected output: true

Reflect.preventExtensions(object1);

console.log(Reflect.isExtensible(object1));
// Expected output: false

Syntax

js
Reflect.preventExtensions(target)

Parameter

target

Das Zielobjekt, bei dem die Erweiterungen verhindert werden sollen.

Rückgabewert

Ein Boolean, der angibt, ob es erfolgreich verhindert wurde, dass das Ziel erweitert wird.

Ausnahmen

TypeError

Wird ausgelöst, wenn target kein Objekt ist.

Beschreibung

Reflect.preventExtensions() bietet die reflexive Semantik des Verhinderns von Erweiterungen eines Objekts. Die Unterschiede zu Object.preventExtensions() sind:

  • Reflect.preventExtensions() löst einen TypeError aus, wenn das Ziel kein Objekt ist, während Object.preventExtensions() immer nicht-Objekt-Ziele unverändert zurückgibt.
  • Reflect.preventExtensions() gibt einen Boolean zurück, der angibt, ob es erfolgreich verhindert wurde, dass das Ziel erweitert wird, während Object.preventExtensions() das Zielobjekt zurückgibt.

Reflect.preventExtensions() ruft die [[PreventExtensions]] interne Objektmethode von target auf.

Beispiele

Verwendung von Reflect.preventExtensions()

Siehe auch Object.preventExtensions().

js
// Objects are extensible by default.
const empty = {};
Reflect.isExtensible(empty); // true

// … but that can be changed.
Reflect.preventExtensions(empty);
Reflect.isExtensible(empty); // false

Unterschied zu Object.preventExtensions()

Wenn das target-Argument dieser Methode kein Objekt (ein primitiver Wert) ist, wird ein TypeError ausgelöst. Mit Object.preventExtensions() wird ein Nicht-Objekt-target unverändert und ohne Fehler zurückgegeben.

js
Reflect.preventExtensions(1);
// TypeError: 1 is not an object

Object.preventExtensions(1);
// 1

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-reflect.preventextensions

Browser-Kompatibilität

Siehe auch