I would avoid using it in production code because it's ambiguous but there is an alternative solution to the for-loop-closure solution by using with to mimic the let binding, here's a copy of my previous answer:
An alternative to the standard closure solution using functions inside of a for loop:
blah
blah
foo
Credit to nlogax for providing a solution which I pretty much ripped off:
Javascript infamous Loop issue?
Here's the standard solution: