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

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
preventExtensions

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch