javascript get和set訪問器

admin發表於2017-04-12

關於Object.defineProperty()更多用法可以參閱以下文章:

(1).Object.defineProperty()一章節。

本章節單獨介紹一下get和set訪問器的相關用法。

說明一點:get和set訪問器不能與value或writable特性共存。

[JavaScript] 純文字檢視 複製程式碼
var book = {
  _year: 2016,
  edition: 1
};
 
Object.defineProperty(book,"year",{
  get: function(){
    return this._year;
  },
  set: function(newValue){
    if(newValue > 2004){
      this._year = newValue;
      this.edition += newValue - 2004;
    }
  }
})
book.year = 2005;
console.log(book.edition);//2

get函式負責返回有效的值,向set函式傳入值,負責決定如何處理資料。

訪問器屬性不能直接定義,必須使用Object.defineProperty()來定義。

相關文章