TypeError: can't redefine non-configurable property "x" - JavaScript 编辑
The JavaScript exception "can't redefine non-configurable property" occurs when it was attempted to redefine a property, but that property is non-configurable.
Message
TypeError: Cannot modify non-writable property {x} (Edge) TypeError: can't redefine non-configurable property "x" (Firefox) TypeError: Cannot redefine property: "x" (Chrome)
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.
Examples
Non-configurable properties created by Object.defineProperty
The Object.defineProperty()
creates non-configurable properties if you haven't specified them as configurable.
var 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.
var obj = Object.create({});
Object.defineProperty(obj, "foo", {value: "bar", configurable: true});
Object.defineProperty(obj, "foo", {value: "baz", configurable: true});
See also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论