The JavaScript exception "can't redefine non-configurable property" occurs when it was attempted to redefine a property, but that property is non-configurable.
MessageTypeError: 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)Error type What went wrong?
It was attempted to redefine a property, but that property is non-configurable. The configurable
attribute controls whether the property can be deleted from the object and whether its attributes (other than writable
) can be changed. Usually, properties in an object created by an object initializer are configurable. However, for example, when using Object.defineProperty()
, the property isn't configurable by default.
The Object.defineProperty()
creates non-configurable properties if you haven't specified them as configurable.
const obj = Object.create({});
Object.defineProperty(obj, "foo", { value: "bar" });
Object.defineProperty(obj, "foo", { value: "baz" });
// TypeError: can't redefine non-configurable property "foo"
You will need to set the "foo" property to configurable, if you intend to redefine it later in the code.
const obj = Object.create({});
Object.defineProperty(obj, "foo", { value: "bar", configurable: true });
Object.defineProperty(obj, "foo", { value: "baz", configurable: true });
See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4