Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Reflect.preventExtensions()

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2016 browserübergreifend verfügbar.

Die statische Methode Reflect.preventExtensions() ähnelt Object.preventExtensions(). Sie verhindert, dass einem Objekt jemals neue Eigenschaften 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, dessen Erweiterung verhindert werden soll.

Rückgabewert

Ein Boolean-Wert, der angibt, ob erfolgreich verhindert wurde, dass das Zielobjekt erweitert wird.

Ausnahmen

TypeError

Wird ausgelöst, wenn target kein Objekt ist.

Beschreibung

Reflect.preventExtensions() stellt die reflektierende Semantik bereit, mit der die Erweiterung eines Objekts verhindert wird. Die Unterschiede zu Object.preventExtensions() sind:

  • Reflect.preventExtensions() löst einen TypeError aus, wenn das Ziel kein Objekt ist, während Object.preventExtensions() Werte, die keine Objekte sind, stets unverändert zurückgibt.
  • Reflect.preventExtensions() gibt einen Boolean-Wert zurück, der angibt, ob erfolgreich verhindert wurde, dass das Zielobjekt erweitert wird, während Object.preventExtensions() das Zielobjekt zurückgibt.

Reflect.preventExtensions() ruft die objektinterne Methode [[PreventExtensions]] von target auf.

Beispiele

Reflect.preventExtensions() verwenden

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 ist (sondern ein primitiver Wert), wird ein TypeError ausgelöst. Bei Object.preventExtensions() wird ein target, das kein Objekt ist, dagegen unverändert und ohne Fehler zurückgegeben.

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

Object.preventExtensions(1);
// 1

Spezifikationen

Spezifikation
ECMAScript® 2027 Language Specification
# sec-reflect.preventextensions

Browser-Kompatibilität

Siehe auch