@ikerya

Почему изменяется дочерний объект оригинала при попытке изменить дочерний объект копии оригинала?

Допустим, есть объект `user`:

const user = {
    	id: 1,
    	data: {
    		age: 60
    	}
    };

Если я скопирую объект `user` в переменную `copy` одним из двух вариантов:

const copy = Object.assign({}, user);

или

const copy = { ...user };

а затем изменю возраст скопированного пользователя:

copy.data.age = 20;

То почему user.data.age тоже изменится и как это предотвратить?
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 1
@yarnstart
Превозмогание и React
https://learn.javascript.ru/object-reference#kloni...
var user = {
  name: "Вася",
  age: 30
};

var clone = {}; // новый пустой объект

// скопируем в него все свойства user
for (var key in user) {
  clone[key] = user[key];
}

ES6:
copy = {...user};
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы