что-то мне тяжело даётся. не, я как бы понял, но...
меня учили, как я понял, что функция в результате замыкания берёт, как бы, всё необходимое её для жизни - это у них называется backpack
ибо контекст исполнения наружной функции будет завершен, а вместо с ним утрачен и доступ к этой переменной. поэтому, это берёт как с собой как бы, в приватное хранилище.
соот-но когда мы простим вернуть функцию индекс, она имеет дело не с максимальным, а с текущим значением.
ведь это прелесть замыкания.
function adder(x) {
const unique = x;
return (y) => {
return unique + y;
}
}
const add1 = adder(10);
const add2 = adder(100);
add1(1) // 11
add2(1) // 101тут переменная одна и та же, но выдает разный результат. почему? потому, что внутренняя функция притащила эту переменную с собой, с её текущим значением в тот момент.
так вот, var i тоже имел текущее значение, он ведь не сразу стал 10, верно? но запоминания не произошло. и я в упор не могу понять почему.
такое ощущение, что оно запомнило ссылку на область памяти. и когда там var i стал 10, то оно и вывело соот-щий резульат