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 statische Methode Reflect.preventExtensions() ähnelt 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 object = {};

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

Reflect.preventExtensions(object);

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

Syntax

js
Reflect.preventExtensions(target)

Parameter

target

Das Zielobjekt, bei dem Erweiterungen verhindert werden sollen.

Rückgabewert

Ein Boolean, der angibt, ob das Ziel erfolgreich so eingestellt wurde, dass Erweiterungen verhindert werden.

Ausnahmen

TypeError

Wird ausgelöst, wenn target kein Objekt ist.

Beschreibung

Reflect.preventExtensions() bietet die reflektive Semantik, um Erweiterungen eines Objekts zu verhindern. 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-objektbezogene Ziele unverändert zurückgibt.
  • Reflect.preventExtensions() gibt einen Boolean zurück, der anzeigt, ob das Ziel erfolgreich so eingestellt wurde, dass Erweiterungen verhindert werden, während Object.preventExtensions() das Zielobjekt zurückgibt.

Reflect.preventExtensions() ruft die [[PreventExtensions]] interne Objektmethode des targets 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 ist (ein primitiver Wert), wird ein TypeError verursacht. Mit Object.preventExtensions() wird ein nicht-objektbezogenes target unverändert zurückgegeben, ohne Fehlermeldung.

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