Reflect.isExtensible()
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 Reflect.isExtensible()
statische Methode ähnelt Object.isExtensible()
. Sie bestimmt, ob ein Objekt erweiterbar ist (ob ihm neue Eigenschaften hinzugefügt werden können).
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
const object2 = Object.seal({});
console.log(Reflect.isExtensible(object2));
// Expected output: false
Syntax
Reflect.isExtensible(target)
Parameter
target
Das Zielobjekt, das darauf überprüft werden soll, ob es erweiterbar ist.
Rückgabewert
Ein Boolean
, der angibt, ob das Ziel erweiterbar ist oder nicht.
Ausnahmen
TypeError
Wird ausgelöst, wenn
target
kein Objekt ist.
Beschreibung
Reflect.isExtensible()
bietet die reflektierende Semantik zum Überprüfen, ob ein Objekt erweiterbar ist. Der einzige Unterschied zu Object.isExtensible()
besteht darin, wie Nicht-Objekt-Ziele behandelt werden. Reflect.isExtensible()
wirft einen TypeError
, wenn das Ziel kein Objekt ist, während Object.isExtensible()
immer false
für Nicht-Objekt-Ziele zurückgibt.
Reflect.isExtensible()
ruft die [[IsExtensible]]
interne Objektmethode von target
auf.
Beispiele
Verwendung von Reflect.isExtensible()
Siehe auch Object.isExtensible()
.
// New objects are extensible.
const empty = {};
Reflect.isExtensible(empty); // true
// … but that can be changed.
Reflect.preventExtensions(empty);
Reflect.isExtensible(empty); // false
// Sealed objects are by definition non-extensible.
const sealed = Object.seal({});
Reflect.isExtensible(sealed); // false
// Frozen objects are also by definition non-extensible.
const frozen = Object.freeze({});
Reflect.isExtensible(frozen); // false
Unterschied zu Object.isExtensible()
Wenn das target
-Argument dieser Methode kein Objekt ist (ein primitiver Wert), wird ein TypeError
ausgelöst. Bei Object.isExtensible()
gibt ein Nicht-Objekt-target
ohne Fehler false
zurück.
Reflect.isExtensible(1);
// TypeError: 1 is not an object
Object.isExtensible(1);
// false
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-reflect.isextensible |