采用自执行的匿名函数解决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解决弹窗问题实现班级跳转DIV示例
Jan 06 Javascript
浏览器缩放检测的js代码
Sep 28 Javascript
jquery实现相册一下滑动两次的方法
Feb 09 Javascript
JavaScript奇技淫巧44招【实用】
Dec 11 Javascript
关于Vue单页面骨架屏实践记录
Dec 13 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
Dec 18 Javascript
浅谈Node.js爬虫之网页请求模块
Jan 11 Javascript
vue将时间戳转换成自定义时间格式的方法
Mar 02 Javascript
vue 设置proxyTable参数进行代理跨域
Apr 09 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
May 08 Javascript
vue项目中引入Sass实例方法
Aug 27 Javascript
ant-design-vue按需加载的坑的解决
May 14 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使用Cookie控制访问授权的方法
2015/01/21 PHP
yii插入数据库防并发的简单代码
2017/05/27 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
javascript add event remove event
2008/04/07 Javascript
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
JavaScript 定义function的三种方式小结
2009/10/16 Javascript
js arguments对象应用介绍
2012/11/28 Javascript
在Ubuntu上安装最新版本的Node.js
2014/07/14 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
小程序日历控件使用方法详解
2018/12/29 Javascript
JavaScript命名空间模式实例详解
2019/06/20 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
原生JavaScript实现进度条
2021/02/19 Javascript
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
Python程序设计入门(1)基本语法简介
2014/06/13 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
详解torch.Tensor的4种乘法
2020/09/03 Python
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
办公室人员先进事迹
2014/01/27 职场文书
西门豹教学反思
2014/02/04 职场文书
幼儿园六一儿童节文艺汇演主持词
2014/03/21 职场文书
大学班级文化建设方案
2014/05/06 职场文书
低碳环保标语
2014/06/12 职场文书
文秘应届生求职信
2014/07/05 职场文书
实训报告范文大全
2014/11/04 职场文书
幽默导游词开场白
2015/05/29 职场文书
22句经典语录:送给优柔寡断和胡思乱想的朋友们
2019/12/13 职场文书