錯誤示例:
for (var i = 0; i < 10; i++) {
setInterval(function(){
console.log(i);
},interval);
}
setInterval是異步的,等到到達執行的時間的時候,裏面的i已經變成3了。需要通過作用域來確保變量的值是想要的值
解決辦法:
for (var i = 0; i < 10; i++) {
(function(i1){
setInterval(function(){
console.log(i1);
},interval);
})(i);//執行傳入i, 匿名函數function的形參是i1,實參就是傳入的i
}
參考地址: https://segmentfault.com/q/1010000002932798