Как разорвать области видимости во вложенных замыканиях?
Смотря чего от вас хотят. В принципе, достаточно var на let заменить в цикле.

или замыканием https://jsfiddle.net/DelphinPRO/uyoa9d5f/
Или то же самое, только по другому https://jsfiddle.net/DelphinPRO/uyoa9d5f/1/
Смотря чего от вас хотят. В принципе, достаточно var на let заменить в цикле.

или замыканием https://jsfiddle.net/DelphinPRO/uyoa9d5f/
Или то же самое, только по другому https://jsfiddle.net/DelphinPRO/uyoa9d5f/1/