2023年7月24日 星期一

在 JavaScript 禁止物件擴充

 在 JavaScript 禁止物件擴充

前言

  最近發現 JavaScript 可以讓物件禁止擴充成員,在此把學習的過程作紀錄。


內容

  在 JavaScript 的 Object 預設是可以隨意地擴充成員的,如果想要禁止這件事是可行的嗎?答案是可行的,範例如下

let obj = {};
console.log( Object.isExtensible(obj) );//true
obj.a = 10;
console.log( obj.a );//10
Object.preventExtensions( obj );
console.log( Object.isExtensible(obj) );//false
obj.b = 0;
console.log( obj.a );//10
console.log( obj.b );//undefined


範例開頭是在 obj 下擴充 a 這個成員,接著透過 Object.preventExtensions() 來禁止擴充成員,接著再擴充成員 b ,但結果是 undefiend 。如果要確認物件是否可擴充可以透過 Object.isExtensible() 來確認,要注意的是禁止擴充後,再做擴充的行為是不會有任何的錯誤出現在 console。


參考資料

[ developer.mozilla.org ] Object.isExtensible()

沒有留言:

張貼留言