为了账号安全,请及时绑定邮箱和手机立即绑定

循环和定时器的问题

循环和定时器的问题

MMTTMM 2019-03-14 18:15:37
都知道如果在循环中设置一个定时器,用var且不将内部函数改为立即执行函数的情况下,会循环打印出5     for(var i = 0;i<5;i++){           setInterval(function(){                         console.log(i,"i")           },200);       }结果:这种情况会一直打印出0、1、2、3、4、0、1、2、3....  for(var i = 0;i<5;i++){        (function(i){           setInterval(function(){                     console.log(i,"i")       },200);       })(i)   }结果:这种写法只打印一次0、1、2、3、4,为什么?for(var i = 0;i<5;i++){     setInterval(function(i){         console.log(i,"i")     }(i),200);}结果
查看完整描述

2 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

第三种是因为你传入setInterval的第一个参数其实是一个函数的执行结果,并不是一个函数


查看完整回答
反对 回复 2019-03-29
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

因为没有callback


let a = function(i){

    console.log(i,"i")

}(i)


a;//undefined


查看完整回答
反对 回复 2019-03-29
  • 2 回答
  • 0 关注
  • 489 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信