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() ist vergleichbar mit Object.preventExtensions(). Sie verhindert, dass einem Objekt jemals neue Eigenschaften hinzugefügt werden können (d. h., sie verhindert zukünftig 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 die Erweiterungen für das Zielobjekt erfolgreich verhindert wurden oder nicht.

Ausnahmen

TypeError

Wird ausgelöst, wenn target kein Objekt ist.

Beschreibung

Reflect.preventExtensions() stellt die reflektive Semantik zur Verfügung, um Erweiterungen eines Objekts zu verhindern. Die Unterschiede zu Object.preventExtensions() sind:

  • Reflect.preventExtensions() löst eine TypeError aus, wenn das Ziel kein Objekt ist, während Object.preventExtensions() nicht-objekthafte Ziele unverändert zurückgibt.
  • Reflect.preventExtensions() gibt einen Boolean zurück, der angibt, ob die Erweiterungen des Ziels erfolgreich verhindert wurden, während Object.preventExtensions() das Zielobjekt zurückgibt.

Reflect.preventExtensions() ruft die [[PreventExtensions]] interne Objektmethode des 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 Argument target dieser Methode kein Objekt (ein primitiver Wert) ist, wird eine TypeError ausgelöst. Bei Object.preventExtensions() wird ein nicht-objekthafter target ohne Fehler unverändert zurückgegeben.

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

Object.preventExtensions(1);
// 1

Spezifikationen

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

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch