采用自执行的匿名函数解决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 相关文章推荐
jQuery的一些注意
Dec 06 Javascript
javascript+xml技术实现分页浏览
Jul 27 Javascript
无缝滚动js代码通俗易懂(自写)
Jun 19 Javascript
JavaScript实现的日期控件具体代码
Nov 18 Javascript
JS中window.open全屏命令解析及使用示例
Dec 11 Javascript
javascript(js)的小数点乘法除法问题详解
Mar 07 Javascript
Javascript中获取对象的原型对象的方法小结
Feb 25 Javascript
Python脚本后台运行的几种方式
Mar 09 Javascript
js实现文本框输入文字个数限制代码
Dec 25 Javascript
如何使用jquery修改css中带有!important的样式属性
Apr 28 Javascript
详解组件库的webpack构建速度优化
Jun 18 Javascript
Webpack设置环境变量的一些误区详解
Dec 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利用反射实现插件机制的方法
2015/03/14 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
基于Bootstrap重置输入框内容按钮插件
2016/05/12 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
2017/07/27 Javascript
js仿微信抢红包功能
2020/09/25 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
Python Socket编程入门教程
2014/07/11 Python
Python中的True,False条件判断实例分析
2015/01/12 Python
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
解读Python中degrees()方法的使用
2015/05/18 Python
python开发之list操作实例分析
2016/02/22 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
python使用zip将list转为json的方法
2018/12/31 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
2019/12/23 Python
浅谈Tensorflow 动态双向RNN的输出问题
2020/01/20 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
公务员职务工作的自我评价
2013/11/01 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
技术负责人岗位职责
2015/02/10 职场文书
2016猴年春节问候语
2015/11/11 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书
python实战之用emoji表情生成文字
2021/05/08 Python
MySQL 分组查询的优化方法
2021/05/12 MySQL
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python