在 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,這樣就可以設定成"可寫"。
沒有留言:
張貼留言