Ich habe dieses wirklich einfache Beispiel aus dem großartigen Buch „Professional JavaScript for Web Developers“ von Nicholas Zakas ausprobiert, aber ich kann nicht herausfinden, was ich hier falsch mache. Muss etwas wirklich Einfaches sein, das ich verpasst habe, aber ich stecke fest.
Hier ist der Code:
'use strict';
var book = {};
Object.defineProperties(book, {
originYear: {
value: 2004,
writable: false
},
_year: {
value: 2004
},
edition: {
value: 1
},
year : {
get: function() {
return this._year;
},
set: function(newValue) {
if(newValue > this.originYear) {
this._year = newValue;
this.edition += newValue - this.originYear;
}
}
}
});
console.log(book.edition);
book.year = 2006;
console.log(book.edition);
Der Fehler, den ich in der Chrome-Konsole erhalte, ist:
Nicht erfasster TypeError: Kann der schreibgeschützten Eigenschaft „_year“ von #main.js:31 nicht zuweisen Object.defineProperties.year.setmain.js:39 (anonyme Funktion)
Kann mir bitte jemand erklären, wo ich falsch liege?
Hier ist der Geige