function b(a) { return a * a; } for (var a = 0; a < 5; a++) { c = a; if (a == 3) { setTimeout((function(aParam) { return function() { c = b(aParam); alert(c); }; })(a), 5000); } alert(c); }