在线文档教程
JavaScript
错误 | Errors

Errors: Cant redefine property

Errors: Cant redefine property

信息

TypeError: can't redefine non-configurable property "x" (Firefox) TypeError: Cannot redefine property: "x" (Chrome)

错误类型

TypeError

什么地方出了错?

试图重新定义一个属性,但该属性是不可配置的。该configurable属性控制是否可以从对象中删除该属性,以及是否writable可以更改其属性(非)。通常,由对象初始值设定项创建的对象中的属性是可配置的。但是,例如,使用时Object.defineProperty(),该属性默认情况下是不可配置的。

例子

由Object.defineProperty创建的不可配置属性

Object.defineProperty()创建,如果你没有指定它们作为配置的不可配置的属性。

var obj = Object.create{} Object.defineProperty(obj, "foo", {value: "bar"} Object.defineProperty(obj, "foo", {value: "baz"} // TypeError: can't redefine non-configurable property "foo"

如果您打算稍后在代码中重新定义,则需要将“foo”属性设置为可配置。

var obj = Object.create{} Object.defineProperty(obj, "foo", {value: "bar", configurable: true} Object.defineProperty(obj, "foo", {value: "baz", configurable: true}