var abc = [ 'a', 'b', 'c' ]; var cbs1 = [], cbs2 = []; for (var i = 0; i !== abc.length; i++) { var symbol = abc[i]; cbs1.push(() => symbol); } for (var i = 0; i !== abc.length; i++) { let symbol = abc[i]; cbs2.push(() => symbol); } console.log(cbs1.map((f) => f()).reduce((s, sym) => s+sym)); // "ccc" console.log(cbs2.map((f) => f()).reduce((s, sym) => s+sym)); // "abc"