Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
TypeError: can't redefine non-configurable property "x"
Die JavaScript-Ausnahme "can't redefine non-configurable property" tritt auf, wenn versucht wurde, eine Eigenschaft neu zu definieren, aber diese Eigenschaft istnicht konfigurierbar.
In diesem Artikel
Meldung
TypeError: Cannot redefine property: "x" (V8-based)TypeError: can't redefine non-configurable property "x" (Firefox)TypeError: Attempting to change value of a readonly property. (Safari)
Fehlertyp
TypeErrorWas ist schiefgelaufen?
Es wurde versucht, eine Eigenschaft neu zu definieren, aber diese Eigenschaft istnicht konfigurierbar. Dasconfigurable-Attribut steuert, ob die Eigenschaft aus dem Objekt gelöscht werden kann und ob ihre Attribute (außerwritable) geändert werden können. Normalerweise sind Eigenschaften in einem durch einenObjektinitialisierer erstellten Objekt konfigurierbar. Wenn jedoch z. B.Object.defineProperty() verwendet wird, ist die Eigenschaft standardmäßig nicht konfigurierbar.
Beispiele
>Nicht-konfigurierbare Eigenschaften erstellt durch Object.defineProperty
DieObject.defineProperty() erstellt nicht-konfigurierbare Eigenschaften, wenn Sie sie nicht als konfigurierbar angegeben haben.
const obj = Object.create({});Object.defineProperty(obj, "foo", { value: "bar" });Object.defineProperty(obj, "foo", { value: "baz" });// TypeError: can't redefine non-configurable property "foo"Sie müssen die "foo"-Eigenschaft auf konfigurierbar setzen, wenn Sie beabsichtigen, sie später im Code neu zu definieren.
const obj = Object.create({});Object.defineProperty(obj, "foo", { value: "bar", configurable: true });Object.defineProperty(obj, "foo", { value: "baz", configurable: true });