采用自执行的匿名函数解决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 相关文章推荐
点击文章内容处弹出页面代码
Oct 01 Javascript
IE JS无提示关闭窗口不提示的方法
Apr 29 Javascript
JS获取农历日期具体实例
Nov 14 Javascript
使用JQuery库提供的扩展功能实现自定义方法
Sep 09 Javascript
深入探讨javascript中的数据类型
Mar 04 Javascript
javascript中的Base64、UTF8编码与解码详解
Mar 18 Javascript
JavaScript 匿名函数和闭包介绍
Apr 13 Javascript
省市二级联动小案例讲解
Jul 24 Javascript
简单的vue-resourse获取json并应用到模板示例
Feb 10 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
Jan 08 Javascript
vue router 通过路由来实现切换头部标题功能
Apr 24 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
Feb 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
php 数组的一个悲剧?
2011/05/11 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
PHP基于新浪IP库获取IP详细地址的方法
2017/05/04 PHP
php strftime函数获取日期时间(switch用法)
2018/05/16 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
在Vue中使用Compass的方法
2018/03/02 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
JS实现简单省市二级联动
2019/11/27 Javascript
js数据类型转换与流程控制操作实例分析
2019/12/18 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
[02:33]DOTA2亚洲邀请赛趣味视频之吐真话筒
2018/03/31 DOTA
wxpython学习笔记(推荐查看)
2014/06/09 Python
python实现跨文件全局变量的方法
2014/07/07 Python
Python中threading模块join函数用法实例分析
2015/06/04 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
Django框架反向解析操作详解
2019/11/28 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
会计实习自我鉴定
2013/12/04 职场文书
广告学专业求职信
2014/06/19 职场文书
机电专业毕业生求职信
2014/07/01 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
班主任班级管理心得体会
2016/01/07 职场文书