var arr = [] for(var i=0; i<10; i++) { arr.push(function(i){ return function() { console.log(i) } }) } console.log(arr.length) for(var j=0; j<10; j++) { setTimeout(arr[j](j), 100 * j) }