Что покажет консоль после копирования объекта

Консоль выведет Newtown. Object.assign копирует верхний уровень, поэтому original.address и copyPerson.address указывают на один вложенный объект.

Короткий ответ

Что ответить на собеседовании

Консоль выведет Newtown. Object.assign копирует верхний уровень, поэтому original.address и copyPerson.address указывают на один вложенный объект.

Подробный разбор

Ответ с пояснениями

Условие

Определите, какое значение будет выведено в консоль.

const original = {
    name: "John",
    age: 30,
    address: {
        street: "123 Main St",
        city: "Anytown",
        state: "CA"
    }
};

const copyPerson = Object.assign({}, original);
copyPerson.address.city = "Newtown";
console.log(original.address.city);

Ответ

Консоль выведет Newtown. Object.assign копирует верхний уровень, поэтому original.address и copyPerson.address указывают на один вложенный объект.

Замена copyPerson.address целиком не изменила бы original.address, но изменение общего поля city видно по обеим ссылкам. Для независимости нужно скопировать также address либо использовать подходящее глубокое копирование всей структуры.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее