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

js
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().

js
// 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.

js
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 GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
isExtensible

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch