首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Errors: Cant redefine property

信息

代码语言:javascript
复制
TypeError: can't redefine non-configurable property "x" (Firefox)
TypeError: Cannot redefine property: "x" (Chrome)

错误类型

TypeError

什么地方出了错?

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

例子

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

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

代码语言:javascript
复制
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”属性设置为可配置。

代码语言:javascript
复制
var obj = Object.create({});
Object.defineProperty(obj, "foo", {value: "bar", configurable: true});
Object.defineProperty(obj, "foo", {value: "baz", configurable: true});

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com