function printFruits(fruits) {
for (var i = 0; i < fruits.length; i++) {
var curr = i;
console.log(curr);
setTimeout(function() {
console.log(curr);
console.log(fruits[curr]);
}, i * 1000);
}
}
printFruits(["Lemon", "Orange", "Mango", "Banana"]);
&#13;
答案 0 :(得分:0)
curr
的值将是调用时的值,到那时curr
的值已经达到 3 。
您需要锁定函数中的值。
(function(curr){setTimeout(function() {
//console.log(curr);
console.log(fruits[curr]);
}, i * 1000)})(curr);
<强>演示强>
function printFruits(fruits)
{
for (var i = 0; i < fruits.length; i++)
{
var curr = i;
//console.log(curr);
(function(curr){setTimeout(function() {
//console.log(curr);
console.log(fruits[curr]);
}, i * 1000)})(curr);
}
}
printFruits(["Lemon", "Orange", "Mango", "Banana"]);