JS. Почему объект при присвоении переменной перезаписывается?

Объясните мне, пожалуйста, может я пропустил какие-то основы JS, но почему вторая переменная объекта перезаписывает первую переменную объекта при присвоении первой (original) ко второй (copy) ?

let original = {
  id: '180527002tf60b',
  tourns_count: 100,
  load_amount: 500,
  accounts: [{
      nickname: 'pLAYER11',
      currency: '$ USD',
      cashbox: 100,
    },
    {
      nickname: 'Prepaid expense',
      currency: '$ USD',
      cashbox: 0
    }
  ]
}

console.log(original) // вывод в консоль до присвоения переменой

let copy = original ? original : {};
copy.tourns_count = 0;
copy.load_amount = 0;
copy.accounts = [];

console.log(original) // вывод в консоль после присвоения переменой

При этом странность в том, что, если в переменных будут строки, числа или массивы, то тогда перезаписи не происходит, то есть дело именно в объектах. Сначала я думал, что возможно проблема в редакторе, где я пишу или в самом nodejs, но оказалось, что это везде.

В других языках подобного не припомню, да и потратил уйму времени, чтобы понять, где у меня данные теряются. Может мне кто-нибудь объяснить эту странность JS ???


Ответы (1 шт):