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 neue Eigenschaften zu einem Objekt hinzugefügt werden können (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 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 reflektierende Semantik, um Erweiterungen eines Objekts zu verhindern. Die Unterschiede zu Object.preventExtensions() sind:

  • Reflect.preventExtensions() wirft einen TypeError, wenn das Ziel kein Objekt ist, während Object.preventExtensions() immer nicht-objektartige Ziele unverändert zurückgibt.
  • Reflect.preventExtensions() gibt einen Boolean zurück, der angibt, ob das Ziel erfolgreich eingestellt wurde, um Erweiterungen zu verhindern, 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 ist (ein primitiver Datentyp), wird ein TypeError verursacht. Bei Object.preventExtensions() wird ein nicht-objektartiges target ohne Fehler unverändert 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