采用自执行的匿名函数解决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 相关文章推荐
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
May 13 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
May 23 Javascript
jquery设置元素的readonly和disabled的写法
Sep 22 Javascript
js简单实现删除记录时的提示效果
Dec 05 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
Jan 02 Javascript
如何防止回车(enter)键提交表单
May 11 Javascript
探寻Javascript执行效率问题
Nov 12 Javascript
JavaScript设计模式之外观模式介绍
Dec 28 Javascript
全面解析Bootstrap表单使用方法(表单控件)
Nov 24 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
Jan 26 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
Dec 13 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
Feb 19 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
无数据库的详细域名查询程序PHP版(5)
2006/10/09 PHP
深入了解php4(1)--回到未来
2006/10/09 PHP
PHP中strtotime函数使用方法详解
2011/11/27 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
在laravel中实现事务回滚的方法
2019/10/10 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
jQuery实现点击查看大图并以弹框的形式居中
2016/08/08 Javascript
浅谈Angular的$q, defer, promise
2016/12/20 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
p5.js临摹动态图形的方法
2019/10/23 Javascript
[01:01]2020完美高校联赛(秋)西安落幕
2021/03/11 DOTA
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
python实现图片变亮或者变暗的方法
2015/06/01 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
wxPython之wx.DC绘制形状
2019/11/19 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
中餐厅主管的职责范文
2014/02/04 职场文书
会计专业自我鉴定
2014/02/10 职场文书
优秀学生评语大全
2014/04/25 职场文书
软件售后服务承诺书
2014/05/21 职场文书
会计求职信范文
2014/05/24 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
面试感谢信范文
2015/01/22 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
小学安全教育主题班会
2015/08/12 职场文书
外出学习心得体会范文
2016/01/18 职场文书