2023年7月31日 星期一

在 Object 中定義 Property

 在 Object 中定義 Property

前言

  最近發現一般物件也可以像 Class 一樣定義 Property ,在此把學習的過程做個紀錄。


內容

  範例如下

let obj = {};
Object.defineProperty( obj , 'prop' ,{ value:10 } );
console.log( obj.prop );//10
obj.prop = 30;
console.log( obj.prop );//10
//
Object.defineProperty( obj , 'prop1' ,{
  value : 10,
  writable: true 
} );
console.log( obj.prop1 );//10
obj.prop1 = 30;
console.log( obj.prop1 );//30


要在定義 Object 中定義 Property 可以透過 Object.defineProperty() 來達成,範例開頭定義 'prop' ,直接列印後如同定義,但修改 'prop' 後發現數值遽然不能改!原因是 Object.defineProperty()  如果不刻意設定"可寫"就會是"唯讀",要如何改"可寫"呢?看範例的 'prop1',在 Object.defineProperty()  裡新增 'writable' 並設成 true,這樣就可以設定成"可寫"。


參考資料

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

沒有留言:

張貼留言