一个很经典的闭包题
for (var i = 1; i <= 5; i++) { (function a(i) { setTimeout(function() { alert(i); }, 1000); })(i);}
按理说,应该弹出1 2 3 4 5 ,但是实际弹出的却是乱序的。换成console.log(i)就是1 2 3 4 5。这是为什么呢?
九州编程
相关分类