2023年9月11日 星期一

關於 Object.preventExtensions() 的注意事項

 關於 Object.preventExtensions() 的注意事項

前言

  在先前的 在 JavaScript 禁止物件擴充 有使用到 Object.preventExtensions() ,但實際使用後發現還有些要注意的事項,在此把學習的過程做個紀錄。


內容

  範例如下

let obj = {
  num : 10
};
console.log( Object.isExtensible(obj) );//true
obj.a = 10;
console.log( obj.a );//10
//
Object.preventExtensions( obj );
console.log( Object.isExtensible(obj) );//false
//
console.log( obj );
// [object Object] {
//   a: 10,
//   num: 10
// }
//
delete obj.a;
console.log( obj );
// [object Object] {
//   num: 10
// }
//follow has error...
//Object.defineProperty( obj , 'prop' ,{ value:10 } );


範例開頭新增 a 這個 Property ,接著透過 Object.preventExtensions() 來禁止擴充,接著就是要住的事,雖然是禁止擴充,但是可以刪除!範例刪除 a 是可以的,最後順帶一提, 進止擴充後來自定義 Property 都會禁止,若喚起 Object.defineProperty() 會報錯。


參考資料

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


相關文章與資料

在 JavaScript 禁止物件擴充

沒有留言:

張貼留言