Что я делаю не так?

Добрый вечер, поясните мне пожалуйста что я делаю не так.

Вот код:
var b = {
  cat: 0,
  category: 51,
  code: 1582,
  id: 923,
  name: "Original",
  parent: 7,
  parents: null,
  price: 110
};

console.log(b);

Order.addItem(b);

window.Order = {
  addItem: function(item) {
    let item_all = [];
    item_all = item;
    item_all.order_id = shortid.generate();

    console.log(item_all)
  }
}


При добавлении предмета, "order_id" появляется и в переменной b, как избежать этого ?

Спасибо
  • Вопрос задан
  • 228 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Присвоение объектов в js идёт по ссылке, поэтому после выполнения item_all = item; и item_all и item - это один и тот же объект и любые изменения будут отражены и там и там.

javascript clone object
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект