TypeError:属性“x”不可配置,无法删除

出现JavaScript异常“属性不可配置且无法删除”试图删除属性时,但该属性不可配置的.

消息

TypeError:无法删除#<对象>(基于V8)的属性“x”TypeError:属性“x”不可配置,无法删除(Firefox)TypeError:无法删除属性。(野生动物园)

错误类型

类型错误仅在严格模式下。

出了什么问题?

试图删除属性,但该属性不可配置的. The可配置的属性控制是否可以从中删除属性对象及其属性(而不是可写的)可以更改。

此错误仅发生在严格模式代码.英寸非严格代码,操作返回.

示例

尝试删除非配置属性

非配置属性不是非常常见,但可以使用对象.defineProperty()Object.freeze().

js公司
“使用严格”;const-obj=Object.freeze({name:“Elsa”,score:157});删除obj.score;//类型错误
js公司
“使用严格”;常量对象={};Object.defineProperty(obj,“foo”,{value:2,configurable:false});删除obj.foo;//类型错误
js公司
“使用严格”;const frozenArray=Object.freeze([0,1,2]);frozenArray.pop();//类型错误

JavaScript中还内置了一些非配置属性。也许你试过了删除数学常数。

js公司
“使用严格”;删除数学。PI;//类型错误

另请参见