@soofftt91

Как поместить объект в 2 переменных, так чтобы при изменении в одной, объект не менялся во второй?

Сегодня впервые столкнулся с странной (для меня) работой JS.
Мне нужно создать 2 переменные в которые помещаются одинаковый входящий объект. Первая переменная должна хранить данные для возможности восстановления. А во второй с данными происходит работа, т.е. они могут изменятся.

Дабы не запутывать вас своим кодом, смоделировал ситуацию в миниатюре: https://jsfiddle.net/8zu8rm1c/1/
var r = {val_1: '#d33', val_2: 'text'};
var a = {};

a.saveFirstValue = r; //сюда нужно сохранить копию изначальных данных
a.data = r;

var saveData = r; // пробую сохранить ещё так

a.data['val_1'] = '#000';
a.data['val_2'] = 'new text';

console.log(a.saveFirstValue, a.data, saveData); // все 3 абсолютно одинаковых объекта
  • Вопрос задан
  • 151 просмотр
Решения вопроса 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
a.saveFirstValue = Object.assign({}, r);
https://developer.mozilla.org/ru/docs/Web/JavaScri...
Обратите внимание на поддержку браузерами и полифилл.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы