JavaScript 锁属性说明

示例

5

可以锁定属性的描述符,因此无法对其进行任何更改。仍然可以正常使用该属性,并从中分配和检索值,但是任何重新定义它的尝试都会引发异常。

的configurable所述属性描述符的属性用于禁止在所述描述符的任何进一步的修改。

var obj = {};

// 将'foo'定义为只读并将其锁定
Object.defineProperty(obj, "foo", { 
    value: "original value", 
    writable: false, 
    configurable: false
});
 
Object.defineProperty(obj, "foo", {writable: true});

将引发此错误:

TypeError:无法重新定义属性:foo

并且该属性将仍然是只读的。

obj.foo = "new value";
console.log(foo);

控制台输出

原始值