Edit in JSFiddle

var book = {
  _year: 2018,
  edition: 1
};
// 여러 프로퍼티를 동시에 수정할 수 있습니다.
Object.defineProperties(book, {
  _year: {
    writable: false
  },
  edition: {
    writable: false
  },
  year: {
    get: function() {
      return this._year;
    },
    set: function(newValue) {
      if (newValue > 2018) {
        Object.defineProperties(this, {
          _year: {
            value: newValue
          },
          edition: {
            value: this.edition + newValue - 2018
          }
        });
      }
    }
  }
});

book.year = 2020; // edition의 값도 같이 변경됨
document.write(book.year + "<br>"); // 2020
document.write(book.edition + "<br>"); // 3