在自定義的 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()
沒有留言:
張貼留言