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 statische Methode Reflect.isExtensible()
ähnelt Object.isExtensible()
. Sie bestimmt, ob ein Objekt erweiterbar ist (d.h., ob neue Eigenschaften zu ihm 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, bei dem überprüft werden soll, ob es erweiterbar ist.
Rückgabewert
Ein Boolean
, der angibt, ob das Zielobjekt erweiterbar ist oder nicht.
Ausnahmen
TypeError
-
Wird ausgelöst, wenn
target
kein Objekt ist.
Beschreibung
Reflect.isExtensible()
bietet die reflektive Semantik zur Überprüfung, ob ein Objekt erweiterbar ist. Der einzige Unterschied zu Object.isExtensible()
besteht darin, wie nicht-Objekt-Ziele behandelt werden. Reflect.isExtensible()
löst einen TypeError
aus, wenn das Ziel kein Objekt ist, während Object.isExtensible()
immer false
für nicht-Objekt-Ziele zurückgibt.
Reflect.isExtensible()
ruft die Methode [[IsExtensible]]
des internen Objektmechanismus 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 Argument target
dieser Methode kein Objekt (ein primitiver Wert) ist, wird ein TypeError
ausgelöst. Bei Object.isExtensible()
liefert ein nicht-Objekt-target
einfach false
, ohne dass ein Fehler auftritt.
Reflect.isExtensible(1);
// TypeError: 1 is not an object
Object.isExtensible(1);
// false
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-reflect.isextensible |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
isExtensible |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support