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