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 |