гетеры и сеттеры js
class PrintEditionItem {
constructor(name, releaseDate, pagesCount) {
this.name = name
this.releaseDate = releaseDate
this.pagesCount = pagesCount
this.state = 100
this.type = null
}
fix() {
this.state *= 1.5
}
set newState(state) {
return this.state = Math.max(0, Math.min(100, this.state))
}
get newState() {
return this.state
}
}
Добрый вечер Подскажите, значение this.state по умолчанию 100, вызов функции fix() должен увеличивать значение на 1,5, как через геттер и сеттер произвести проверку получившегося значения?
Ответы (1 шт):
Автор решения: eccs0103
→ Ссылка
Смысл get и set в том, чтобы ограничить значение какого-то свойства. Их смысл пропадает, если
- это свойство публичное,
- вы используйте это свойство вместо
getиset
Правильно будет так:
class PrintEditionItem {
#state;
get newState() {
return this.#state;
}
set newState(value) {
this.#state = Math.max(0, Math.min(value, 100));
}
fix() {
this.newState *= 1.5;
}
}