Помогите пожалуйста разобраться. Это решение задачи из книги "Выразительный javascript". Задача на односвязные списки: Напишите функцию arrayToList, которая строит такую структуру, получая в качестве аргумента [1, 2, 3]...
console.log(arrayToList([10, 20]));
// → {value: 10, rest: {value: 20, rest: null}}
Почему работает код тела цикла? Разве на каждой итерации переменные не создаются заново?
function arrayToList(arr) {
for (var i = arr.length - 1; i >= 0; --i) {
var nextRest = list || null;
var list = {};
list["value"] = arr[i];
list["rest"] = nextRest;
}
return list;
}