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

setTimeout的疑问

我想问下第19行的  setTimeout(clock,1000);  setTimeout不是只执行一次么,为什么还能每秒每秒倒计时呢?

正在回答

1 回答

看第15行和第20行注释,当num变化的时候,返回来执行15行,不然你在15行和16行之间再加一段var i = setTimeout(clock,1000);   你会发现自减2。然而你放在19行到20行之间,你再看看自减2 4 8,然后再回来看15行和20行注释。

0 回复 有任何疑惑可以回复我~
#1

慕神0337640 提问者

非常感谢!
2018-01-17 回复 有任何疑惑可以回复我~
#2

慕神0337640 提问者

试了一下,的确像你说的那样,var i = setTimeout(clock,1000); 放在15、16行之间的时候,会自减2,放到19、20行之间时会自减2、4、8、16、32、64、128...... 可是我还是不太彻底的理解这个程序运行的过程,我自己再看看想想吧,谢谢你的回答!
2018-01-17 回复 有任何疑惑可以回复我~
#3

qq_与赠_03193390 回复 慕神0337640 提问者

你这个简单点就是递归;自己调用自己,所以才会有num自减的效果
2018-03-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468188    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

setTimeout的疑问

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信