Closure Q1
What would this print out?
var arr = [1,2,3,4];
function closure(){
for(var i = 0; i < arr.length; i++){
setTimeout(function(){
console.log(i)
}, 100)
}
}
closure()var arr = [1,2,3,4];
function closure(){
for(var i = 0; i < arr.length; i++){
setTimeout(function(){
console.log(i)
}, 100)
}
}
closure();4
4
4
4How would you fix this?
var arr = [1,2,3,4];
function closure(){
for(var i = 0; i < arr.length; i++){
setTimeout(function(){
console.log(i)
}, 100)
}
}
closure()Using Let
var arr = [1,2,3,4];
function closure(){
for(let i = 0; i < arr.length; i++){
setTimeout(function(){
console.log(i)
}, 100)
}
}
closure()Using IIFE
var arr = [1, 2, 3, 4];
function closure() {
for (var i = 0; i < arr.length; i++) {
(function (item) {
setTimeout(function () {
console.log(item);
}, 100);
})(i);
}
}
closure();Using `bind`
Resources
Last updated