JavaScriptsetTimeout使用闭包功能实现定时打印数值_javascript技巧
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScriptsetTimeout使用闭包功能实现定时打印数值_javascript技巧,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2155字,纯文字阅读大概需要4分钟。
内容图文
![JavaScriptsetTimeout使用闭包功能实现定时打印数值_javascript技巧](/upload/InfoBanner/zyjiaocheng/329/7d98dde9ef7148629ead016fd6767e0a.jpg)
这段代码虽然依次打印了,每个i的值0,1,2,3,4.但是,执行的时间却没有起作用.为什么呢? 因为 console.log() 是方法的执行调用,在调用这个方法后,当是马上执行!,所以没有达到我们预期的目的。
那我们继续看下面一段代码
这里我们使用一个匿名函数包含了打印的console.log来打印i,所以 i这个值是共享的,还没等到执行第一个setTimeout的时候,for循环已经执行完成,最后的i = 5,所以i 会打印四次 其实我们两种解决办法,我们先来看第一种:
这里我们另外一个全局变量来存储值,每执行一次函数abc,j就加一次,所以执行到setTimeout的时候,就会调用abc函数,所以会达到我们预期的效果,但是这里这个j是一个全局变量,全局变量会造成容易改变其值或者命名冲突等问题. 第二种办法的实现,我们再次引入闭包函数.因为闭包函数,每一次创建都会存在一个自己的空间来存储唯一的值.所以利用这个思维.我们把代码写成下面的代码.
我们将i的每一次执行for循环的值,传给不同创建的闭包函数,这样每一个闭包函数里存储的i值,就都不会一样.所以就是达到我们的想要的结果.
ps:使用闭包对setTimeout进行简单封装
在写js脚本时,经常会用到一些拼写函数的情况,例如调用setTimeout
查了很长时间,为什么就是弹不出对话框呢。检查了很长时间才发现,原来是少了一对单引号
这样的写法容易出错,还不容易检查出错误,如果使用闭包就可完全避免,改写如下
由于使用了闭包,也简单了很多,检查错误也很容易了
内容总结
以上是互联网集市为您收集整理的JavaScriptsetTimeout使用闭包功能实现定时打印数值_javascript技巧全部内容,希望文章能够帮你解决JavaScriptsetTimeout使用闭包功能实现定时打印数值_javascript技巧所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。