Running the following code:
for (var i=0; i<3; i++) {
setTimeout( function() { console.log(i); } , 500 );
}
Outputs "3" three times. It's outputting the final value of i
as opposed to the value of i
when the inner function is created.
If I want the output to be 1, 2, and 3, how would I write this code? How can I get it to use the value of i
at the time the function is defined as opposed to its final value?