如何识别javascript不可删除的属性?

xam*_*mir 10 javascript properties ecmascript-5 strict-mode

在Javascript严格模式下

不允许删除不可删除的属性

为了确保不删除这样一个不可删除的属性,如何确定属性X是可删除的,属性Y是不可删除的

它背后的概念是......?

Ber*_*rgi 10

这背后的概念是......?

属性属性.configurable属性设置为的每个属性false都不能为deleted(在sloppy模式下无声地失败并以严格模式抛出).

如何判断一个属性是否可删除?

您可以使用该Object.getOwnPropertyDescriptor()函数作为对象访问属性:

var isDeletable = Object.getOwnPropertyDescriptor(obj, "propName").configurable;
Run Code Online (Sandbox Code Playgroud)

请注意,这只适用于自己的属性obj,而不是继承的属性; 对于那些你将不得不在相应的原型上调用该函数.