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 (ob ihm neue Eigenschaften hinzugefügt werden können).

Probieren Sie es aus

Syntax

js
Reflect.isExtensible(target)

Parameter

target

Das Zielobjekt, das überprüft werden soll, ob es erweiterbar ist.

Rückgabewert

Ein Boolean, das angibt, ob das Ziel 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() ist, wie nicht-objekthafte Ziele behandelt werden. Reflect.isExtensible() löst einen TypeError aus, wenn das Ziel kein Objekt ist, während Object.isExtensible() für nicht-objekthafte Ziele immer false zurückgibt.

Reflect.isExtensible() ruft die [[IsExtensible]] interne Objektmethode 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 target-Argument dieser Methode kein Objekt ist (ein Primitive), verursacht es einen TypeError. Mit Object.isExtensible() wird bei einem nicht-objekthaften target ein false ohne Fehler zurückgegeben.

js
Reflect.isExtensible(1);
// TypeError: 1 is not an object

Object.isExtensible(1);
// false

Spezifikationen

Specification
ECMAScript Language Specification
# sec-reflect.isextensible

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch