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 jemals neue Eigenschaften zu einem Objekt 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, bei dem Erweiterungen verhindert werden sollen.
Rückgabewert
Ein Boolean, der angibt, ob das Ziel erfolgreich so eingestellt wurde, dass Erweiterungen verhindert werden.
Ausnahmen
TypeError-
Wird ausgelöst, wenn
targetkein Objekt ist.
Beschreibung
Reflect.preventExtensions() bietet die reflektive Semantik, um Erweiterungen eines Objekts zu verhindern. Die Unterschiede zu Object.preventExtensions() sind:
Reflect.preventExtensions()löst einenTypeErroraus, wenn das Ziel kein Objekt ist, währendObject.preventExtensions()immer nicht-objektbezogene Ziele unverändert zurückgibt.Reflect.preventExtensions()gibt einenBooleanzurück, der anzeigt, ob das Ziel erfolgreich so eingestellt wurde, dass Erweiterungen verhindert werden, währendObject.preventExtensions()das Zielobjekt zurückgibt.
Reflect.preventExtensions() ruft die [[PreventExtensions]] interne Objektmethode des targets auf.
Beispiele
>Verwendung von Reflect.preventExtensions()
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 target-Argument dieser Methode kein Objekt ist (ein primitiver Wert), wird ein TypeError verursacht. Mit Object.preventExtensions() wird ein nicht-objektbezogenes target unverändert zurückgegeben, ohne Fehlermeldung.
Reflect.preventExtensions(1);
// TypeError: 1 is not an object
Object.preventExtensions(1);
// 1
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2026 Language Specification> # sec-reflect.preventextensions> |