@Sergo467

Почему переменная list не перезаписывается каждую итерацию цикла?

Разве переменная list не должна перезаписываться каждую итерацию цикла?
function ListNode(val, next) {
	this.val = (val === undefined ? 0 : val)
	this.next = (next === undefined ? null : next)
}

let list;
for(let c=1; c<=5; c++){
	list=new ListNode(c, list); //Я не могу понять, как работает эта строка.
}
console.log(list);

Как я думаю, что должно быть:
Скриншот фрагмента кода удалён модератором.
А на деле это:
Скриншот фрагмента кода удалён модератором.
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
А почему вы решили, что она не перезаписывается? Вот добавил одну строчку логирования, и видно как она перезаписывается
function ListNode(val, next) {
  this.val = (val === undefined ? 0 : val)
  this.next = (next === undefined ? null : next)
}

let list;
for(let c=1; c<=5; c++){
  list=new ListNode(c, list); //Я не могу понять, как работает эта строка.
  console.log('val=', list.val, 'next=', list.next); // <---------- вот эту
}
console.log(list);


val= 1 next= null
val= 2 next= ListNode {val: 1, next: null}
val= 3 next= ListNode {val: 2, next: ListNode}
val= 4 next= ListNode {val: 3, next: ListNode}
val= 5 next= ListNode {val: 4, next: ListNode}
ListNode {val: 5, next: ListNode}
Ответ написан
Ваш ответ на вопрос

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

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