7
Mój angielski nie jest dobry, ale postaram się jak najlepiej wyjaśnić moje pytanie po prostu. Opis: wynik alertu to 1, nie wiem dlaczego, myślę, że powinien to być rok 2015, aby ostrzec.Jak używać settera i gettera w javascript, napotkałem błąd
var book = {};
Object.defineProperties(book, {
_year: {
value: 1
},
edition: {
value: 23
},
year: {
get: function() {
return this._year;
},
set: function (newValue) {
if (newValue > 2004)
this._year = newValue;
}
}
}
);
book.year = 2015;
alert(book.year);
niezły połów; Zastanawiam się, dlaczego nie widzę częściej używanej metody defineProperties(). Zwróć uwagę, że gdy używasz bardziej typowej Object.defineProperty() dla istniejącej właściwości obiektu, ta flaga jest już ustawiona, więc nie będzie potrzeby wyraźnego wymieniania zapisu. – dandavis
@dandavis: Właściwie pracuję głównie nad JavaScriptem od dłuższego czasu i ** nigdy ** o tym nie słyszałem. Z pewnością zajrzę w to więcej. –