鎖屬性描述

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);

控制檯輸出

原始價值