Как добавить сеттеру проверку передаваемого значения параметра
Добавить сеттеру price проверку передаваемого значения параметра newPrice. Если оно больше чем MAX_PRICE, сеттер ничего не делает, а если меньше или равно, то перезаписывает цену автомобиля. Что не так?
class Car {
#price;
static MAX_PRICE = 50000
constructor({
price
}) {
this.#price = price;
}
get price() {
return this.#price;
}
set price(newPrice) {
if (this.#price <= Car.MAX_PRICE)
return newPrice
}
}
const audi = new Car({
price: 35000
});
console.log(audi.price); // 35000
audi.price = 49000;
console.log(audi.price); // 49000
audi.price = 51000;
console.log(audi.price); // 49000
Ответы (1 шт):
Автор решения: EzioMercer
→ Ссылка
- Сеттер никогда ничего не должен возращать
- Надо проверять не текщую цену, а ту что на вход приходит
class Car {
#price;
static MAX_PRICE = 50000;
constructor({price}) {
this.#price = price;
}
get price() {
return this.#price;
}
set price(newPrice) {
if (newPrice <= Car.MAX_PRICE) this.#price = newPrice;
}
}
const audi = new Car({
price: 35000
});
console.log(audi.price); // 35000
audi.price = 49000;
console.log(audi.price); // 49000
audi.price = 51000;
console.log(audi.price); // 49000