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 neue Eigenschaften jemals zu einem Objekt hinzugefügt werden (d. h., sie verhindert zukünftige Erweiterungen des Objekts).

Probieren Sie es aus

Syntax

js
Reflect.preventExtensions(target)

Parameter

target

Das Zielobjekt, an dem Erweiterungen verhindert werden sollen.

Rückgabewert

Ein Boolean, das angibt, ob das Ziel erfolgreich auf die Verhinderung von Erweiterungen gesetzt wurde oder nicht.

Ausnahmen

TypeError

Wird ausgelöst, wenn target kein Objekt ist.

Beschreibung

Reflect.preventExtensions() bietet die reflexive Semantik der Verhinderung von Erweiterungen eines Objekts. 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 ein Boolean zurück, das angibt, ob das Ziel erfolgreich auf die Verhinderung von Erweiterungen gesetzt wurde, 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 Primitive) ist, wird es einen TypeError verursachen. 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 Language Specification
# sec-reflect.preventextensions

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch