2023年8月14日 星期一

在自定義的 Property 裡使用 getter 與 setter

 在自定義的 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()


相關文章與資料

在 Object 中定義 Property


沒有留言:

張貼留言