По какой причине var не создает замыкания и не сохраняет i за каждой итерацией?
Вот здесь будет 3 раза подряд 5 выводится, хотя я вывожу разные индексы
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
let result = []
for (var i = 0; i < 5; i++){
result.push(function(){
console.log(i)
})
}
result[2]()
result[4]()
result[1]()
</script>
</body>
</html>