采用自执行的匿名函数解决for循环使用闭包的问题


Posted in Javascript onSeptember 11, 2014

这段代码输出的是10个10而不是期望的0到9,因为闭包内是对i的引用,然后函数执行时i已经变成了10

function f1(){
for(var i = 0; i < 10; i++) {
setTimeout(function() {
alert(i); 
}, 1000);
}
}
f1();

解决以上的问题可以采用自执行的匿名函数

function f2(){
for(var i = 0; i < 10; i++) {
(function(e) {
setTimeout(function() {
alert(e); 
}, 1000);
})(i);
}
}
f2();

这里的匿名函数将i作为参数,这里的e会有i的一个拷贝,而引用时是对e的引用,这就避免了上述的问题

Javascript 相关文章推荐
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
Oct 31 Javascript
Jquery刷新页面背景图片随机变换的实现方法
Mar 15 Javascript
jQueryUI DatePicker 添加时分秒
Jun 04 Javascript
异步加载JS、CSS代码(推荐)
Jun 15 Javascript
JavaScript中Array的实用操作技巧分享
Sep 11 Javascript
jQuery 获取select选中值及清除选中状态
Dec 13 Javascript
详解Node.js项目APM监控之New Relic
May 12 Javascript
微信小程序模板和模块化用法实例分析
Nov 28 Javascript
vue中mint-ui的使用方法
Apr 04 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
May 29 Javascript
vue路由教程之静态路由
Sep 03 Javascript
vue实现两个组件之间数据共享和修改操作
Nov 12 Javascript
Extjs grid panel自带滚动条失效的解决方法
Sep 11 #Javascript
用js传递value默认值的示例代码
Sep 11 #Javascript
js图片实时加载提供网页打开速度
Sep 11 #Javascript
jQuery 复合选择器应用的几个例子
Sep 11 #Javascript
使用js dom和jquery分别实现简单增删改
Sep 11 #Javascript
sogou地图API用法实例教程
Sep 11 #Javascript
当前流行的JavaScript代码风格指南
Sep 10 #Javascript
You might like
smarty模板引擎中变量及变量修饰器用法实例
2015/01/22 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
2018/10/14 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
JS变量及其作用域
2017/03/29 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
微信小程序自定义toast的实现代码
2018/11/16 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
[03:55]2014DOTA2国际邀请赛 Fnatic经理采访赢DK在情理之中
2014/07/10 DOTA
Python使用minidom读写xml的方法
2015/06/03 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
python/golang 删除链表中的元素
2020/09/14 Python
pandas按照列的值排序(某一列或者多列)
2020/12/13 Python
java关于string最常出现的面试题整理
2021/01/18 Python
python实现银行账户系统
2021/02/22 Python
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
迷你唐卡软皮鞋:Minnetonka Moccasin
2018/05/01 全球购物
LODI女鞋在线商店:阿利坎特的鞋类品牌
2019/02/15 全球购物
体育之星事迹材料
2014/05/11 职场文书
经管应届生求职信范文
2014/05/18 职场文书
暑期学习心得体会
2014/09/02 职场文书
党员四风自我剖析材料思想汇报
2014/09/13 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
优秀班主任申报材料
2014/12/16 职场文书
感恩父母主题班会
2015/08/12 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python