在 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。
沒有留言:
張貼留言