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()
ähnelt Object.preventExtensions()
. Sie verhindert, dass neue Eigenschaften zu einem Objekt hinzugefügt werden können (d.h. sie verhindert zukünftige 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
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
target
kein Objekt ist.
Beschreibung
Reflect.preventExtensions()
bietet die reflektierende Semantik, um Erweiterungen eines Objekts zu verhindern. Die Unterschiede zu Object.preventExtensions()
sind:
Reflect.preventExtensions()
wirft einenTypeError
, wenn das Ziel kein Objekt ist, währendObject.preventExtensions()
immer nicht-objektartige Ziele unverändert zurückgibt.Reflect.preventExtensions()
gibt einenBoolean
zurück, der angibt, ob das Ziel erfolgreich eingestellt wurde, um Erweiterungen zu verhindern, währendObject.preventExtensions()
das Zielobjekt zurückgibt.
Reflect.preventExtensions()
ruft die [[PreventExtensions]]
interne Objektmethode von target
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 Datentyp), wird ein TypeError
verursacht. Bei Object.preventExtensions()
wird ein nicht-objektartiges target
ohne Fehler unverändert zurückgegeben.
Reflect.preventExtensions(1);
// TypeError: 1 is not an object
Object.preventExtensions(1);
// 1
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-reflect.preventextensions |