Показать сообщение отдельно
  #1 (permalink)  
Старый 23.10.2023, 18:29
Аспирант
Отправить личное сообщение для Himmelin Посмотреть профиль Найти все сообщения от Himmelin
 
Регистрация: 14.01.2019
Сообщений: 31

Не понимаю каким образом модифицировался исходный объект
Всем доброго времени!

Есть вот такой простенький исходный объект в форме связного списка:

const baseList = {
  value: 6,
  next: {
    value: 4,
    next: {
      value: 2,
      next: null,
    },
  },
}


Его я прогоняю через такую функцию:

function backwards(list) {
  let prevValue;

  while (list) {
    let next = list.next;
    
    list.next = prevValue;
    prevValue = list;
    list = next;
  }

  return prevValue;
}


В итоге после вызова
backwards(baseList)
я вывожу в консоль исходный объект
console.log(baseList)
и с удивлением обнаруживаю что он равен
{ value: 6, next: null }
, а не
null
как я рассчитывал. Подскажите как и на каком моменте так вышло? По ходу у меня пробелы в знаниях о ссылочных типах данных...
Ответить с цитированием