Что выведет код 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 ошибок.