When you create closures inside a for loop with var, all closures share one binding. By the time they run, i is already at its final value.
Challenge: Write varLoopClosure() that:
fnsfor (var i = 0; i < 3; i++) loop and pushes () => i to fnsfns[0]() β this returns the final value of i (3), not 0