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

settimeout 第一传参是执行代码和函数的问题

settimeout 第一传参是执行代码和函数的问题

慕斯王 2019-03-18 22:16:48
1、今天试了下settimeout这个方法,发现第一个传参是函数和执行代码,效果不一样for( var i = 0; i < 5; i ++ ){     setTimeout(()=>{       console.log( i );     },2000) } 输出 5个5for( var i = 0; i < 5; i ++ ){     setTimeout(console.log( i ),2000) } 输出 012342、我的猜想是第一个传参是先预读了,第一种方式是函数,所以函数内部代码没有预读,第二个是执行代码,预读了然后延时执行?不知道我的猜想对不对?
查看完整描述

2 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

试一下这个

for( let i = 0; i < 5; i ++ ){
    setTimeout(()=>{
      console.log( i );
    },2000)
}
for( let i = 0; i < 5; i ++ ){
    setTimeout(console.log( i ),2000)
}


查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 587 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号