Что выведет код Middle Прототипы и классы обновлено
Геттеры и сеттеры
Вопрос
Что выведет код? По строке на каждый вывод.
const obj = {
_v: 1,
get v() { return this._v * 2; },
set v(x) { this._v = x + 1; },
};
console.log(obj.v);
obj.v = 5;
console.log(obj._v);
console.log(obj.v);
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: 2, 6, 12. Почему так Аксессоры выглядят как обычные свойства, но выполняют код.
Что выведет
2
6
12
Разбор
Почему так
Аксессоры выглядят как обычные свойства, но выполняют код. Полезно для вычисляемых полей; ловушка - неявная работа при каждом обращении и путаница при копировании через спред (спред читает значение и теряет аксессор).
Вывод
2
6
12
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.