Проверяет понимание механизма перехвата присваивания свойств объекта через setter в JavaScript без изменения кода вызывающей стороны.
Setter (сеттер) — это специальный метод объекта, который автоматически вызывается при попытке присвоить значение свойству. Он позволяет перехватить операцию присваивания и выполнить произвольный код, например, проверку корректности данных, преобразование значения или логирование. При этом вызывающая сторона продолжает использовать обычный синтаксис присваивания (obj.prop = value), не подозревая о наличии дополнительной логики.
Рассмотрим объект, который хранит температуру в градусах Цельсия, но мы хотим, чтобы при присваивании значения в Фаренгейтах оно автоматически конвертировалось. Сеттер позволяет это сделать прозрачно:
const thermometer = {
_celsius: 0,
set fahrenheit(value) {
this._celsius = (value - 32) * 5 / 9;
},
get fahrenheit() {
return this._celsius * 9 / 5 + 32;
}
};
thermometer.fahrenheit = 100; // вызывается setter
console.log(thermometer.fahrenheit); // 100
console.log(thermometer._celsius); // 37.777...
В этом примере вызывающий код просто присваивает свойству fahrenheit число 100, не зная о конвертации. Сеттер перехватывает присваивание и преобразует значение.
Setter — мощный инструмент для инкапсуляции логики присваивания, позволяющий добавлять поведение без изменения вызывающего кода. Его стоит применять, когда нужно контролировать или модифицировать данные при записи свойства, сохраняя простой интерфейс для внешнего использования.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию