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

定时器和立即执行

定时器和立即执行

ABOUTYOU 2018-12-20 16:10:28
1.代码一:结果:在浏览器中一秒显示一个是一秒出来一行2.代码二结果:在浏览器中是一次性出来的问题:为什么会不一样,我认为是都会一个一个显示,而不是一次性都显示??
查看完整描述

1 回答

?
一只甜甜圈

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

代码1里面利用了闭包 把for每次执行的i当成参数传递闭包函数中,因此获得的i值分别是0 1 2 3 4因此输入也便是一个一个的显示
但是代码2中异步执行的定时器中的duration中的i值都是指向for循环中i值得变量储存地址,在for循环结束后i变成了5 所以duration的i值都是5,而定时器中的function中的j值是通过参数获取到的 参数其实是另外一种方式的变量拷贝 并不是直接引用i的地址 所以每次都有能把i的不同值传递进入

查看完整回答
反对 回复 2019-01-21
  • 1 回答
  • 0 关注
  • 487 浏览
慕课专栏
更多

添加回答

举报

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