在自定義的 Property 裡使用 getter 與 setter
前言
在先前的 在 Object 中定義 Property 裡直接透過賦值來設定 Property ,但在 Class 使用 Property 時是可以透過 getter 與 setter 來存取 Property ,自定義的 Property 其實也可用 getter 與 setter ,在此把學習的過程做個紀錄。
內容
範例如下
const o = {}; // let value = 38; Object.defineProperty(o, "a", { get() { console.log('get value!'); return value; }, set(newValue) { console.log('set value!'); value = newValue; } }); o.a = 42; console.log(o.a); // 42
用起來跟在 Class 時很像,都是定義 get() 與 set() ,要注意的是之前要做"寫"的動作的時候必須設定 writable 為 true 來達成,但有使用 set() 的時候就可以不用設定就可直接完成寫的動作。
參考資料
[ developer.mozilla.org ] Object.defineProperty()
沒有留言:
張貼留言