日期:2014-05-16  浏览次数:20383 次

setTimeout传参数问题
JScript code
  
for (var i = 0; i < 3; i++)
{
      setTimeout(function(){alert(i);}, (i+1)*5000);
}



三次alert都是3,期望alert0,1,2,有没有好方法?

------解决方案--------------------
闭包了,我觉得应该专门开个置顶讲闭包
JScript code
for (var i = 0; i < 3; i++) {
    setTimeout((function (k) {
        return function () {
            alert(k);
        }
    })(i), (i + 1) * 1000);
}