有个循环,循环一个异步回调,为啥回调引用的循环值都是最后一步循环的循环值?然后,又有些时候无论什么循环值都得不到? var arr = [1,3,5,7,9]; var arrLength = arr.length; for (var i = 0; i < arrLength; i++) { setTimeout(function() { console.log(i); console.log(arr[i]); }, 2000); } 结果是: 5 undefined 5 undefined 5…