Консоль выведет 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 либо использовать подходящее глубокое копирование всей структуры.