Title I have stolen from here.
Here is my example. This example will return five times five:
for (var i=0; i < 5; i++) {
setTimeout(function () {
console.log(i)
}, i*1000)
}
And this example will return 0, 1, 2, 3, 4:
var aa = function (a) {setTimeout(function () {
console.log(a)
}, i*1000)};
for (var i=0; i < 5; i++) {
aa(i);
}