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
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
targetkein 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 einenTypeErroraus, wenn das Ziel kein Objekt ist, währendObject.preventExtensions()Werte, die keine Objekte sind, stets unverändert zurückgibt.Reflect.preventExtensions()gibt einenBoolean-Wert zurück, der angibt, ob erfolgreich verhindert wurde, dass das Zielobjekt erweitert wird, währendObject.preventExtensions()das Zielobjekt zurückgibt.
Reflect.preventExtensions() ruft die objektinterne Methode [[PreventExtensions]] von target auf.
Beispiele
>Reflect.preventExtensions() verwenden
Siehe auch Object.preventExtensions().
// 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.
Reflect.preventExtensions(1);
// TypeError: 1 is not an object
Object.preventExtensions(1);
// 1
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-reflect.preventextensions> |