Что выведет код Senior Объекты и массивы обновлено
Спред и аксессоры
Вопрос
Что выведет код? По строке на каждый вывод.
const src = { get v() { return Math.min(1, 2); } };
const copy = { ...src };
console.log(Object.getOwnPropertyDescriptor(src, 'v').get !== undefined);
console.log(Object.getOwnPropertyDescriptor(copy, 'v').get !== undefined);
console.log(copy.v);
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: true, false, 1. Почему так {...obj} вызывает геттеры и кладёт результат обычным полем.
Что выведет
true
false
1
Разбор
Почему так
{...obj} вызывает геттеры и кладёт результат обычным полем. Чтобы сохранить аксессоры, нужен Object.defineProperties с getOwnPropertyDescriptors.
Вывод
true
false
1
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.