锁属性描述
Version >= 五
可以锁定属性的描述符,因此不能对其进行任何更改。仍然可以正常使用该属性,从中分配和检索值,但任何重新定义它的尝试都将引发异常。
属性描述符的 configurable
属性用于禁止对描述符进行任何进一步更改。
var obj = {};
// Define 'foo' as read only and lock it
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);
控制台输出
原始价值