for (var i = 0; i < 10; i++) {
setTimeout(function (a) {
return function () {
console.log(a);
};
}(i), 1000);
}
for (var i = 0; i < 10; i++) {
(function(a) {
setTimeout(function() {
console.log(a);
}, 1000);
})(i);
}
这两种写法都能跑出正确结果,有没有一个 convention 说用哪一个比较好?还是其中某一种其实是有缺陷的?谢谢。