采用自执行的匿名函数解决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 相关文章推荐
IE bug table元素的innerHTML
Jan 11 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
Jun 23 Javascript
JavaScript处理解析JSON数据过程详解
Sep 11 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
Mar 25 Javascript
JavaScript解析JSON格式数据的方法示例
Jan 24 Javascript
深入理解JavaScript中的for循环
Feb 07 Javascript
AngularJS路由切换实现方法分析
Mar 17 Javascript
Vue2几种常见开局方式详解
Sep 09 Javascript
Angular 5.0 来了! 有这些大变化
Nov 15 Javascript
使用vue2实现购物车和地址选配功能
Mar 29 Javascript
Webpack中publicPath路径问题详解
May 03 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
Nov 05 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实现的链式队列结构示例
2017/09/15 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
JS+CSS实现一个气泡提示框
2013/08/18 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
JavaScript基础知识学习笔记
2014/12/02 Javascript
jquery表单验证需要做些什么
2015/11/17 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
python 排列组合之itertools
2013/03/20 Python
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
python在控制台输出进度条的方法
2015/06/20 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
python里使用正则表达式的组嵌套实例详解
2017/10/24 Python
特征脸(Eigenface)理论基础之PCA主成分分析法
2018/03/13 Python
情人节快乐! python绘制漂亮玫瑰
2020/08/18 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
大韩航空官方网站:Korean Air
2017/10/25 全球购物
老师推荐信
2013/10/28 职场文书
淘宝中秋节活动方案
2014/01/31 职场文书
企业标语大全
2014/07/01 职场文书
道路施工安全责任书
2014/07/24 职场文书
预备党员2014年第四季度思想汇报范文
2014/10/25 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书
英语通知范文
2015/04/22 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS
《游戏王:大师决斗》新活动上线 若无符合卡组可免费租用
2022/04/13 其他游戏
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python