可配置 - 如果为 true,则可以删除属性并更改属性,否则不能。
事实证明,configurable
使用该值false
禁止删除属性并更改其属性。
好的,删除后一切正常,但可以使用 value 更改属性false
。
let obj = {
name: 'Eva',
greeting () {
return this.name;
}
};
Object.defineProperty(obj, 'greeting', {
configurable: false //нет возможности удалить св-во, изменять атрибуты
});
Object.defineProperty(obj, 'greeting', {
writable: false //изменение атрибута
});
console.log(Object.getOwnPropertyDescriptor(obj, 'greeting')); //writable false
怎么会这样?
这是规范中写的一个例外。对于不可配置的属性,可以把
writable
ctrue
改成false
,反之不行,也就是以后不能返回。逻辑是您可以增加对属性的保护,但不能削弱它。这里有一个历史解释: