浅析javascript异步执行函数导致的变量变化问题解决思路


Posted in Javascript onMay 13, 2016

浅析javascript异步执行函数导致的变量变化问题解决思路

for(var i=0;i<3;i++)
{
   setTimeout(function(){
     console.log(i)
  },0);
}

控制台输出:
3
3
3

这是因为执行方法的时候for循环已经执行完成每次执行的时候取得都是3 而不是1-2-3这时我们可以使用立即执行函数为每一次循环创建一个变量副本来供定时器调用解决这个问题

for (var i = 0; i < 3; i++) {
      setTimeout(
      (function () {
        var _i = i;
        return function () {
          console.log(_i)
        };
      })(),
     0);
    }

控制台输出:
1
2
3

以上这篇浅析javascript异步执行函数导致的变量变化问题解决思路就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
网上应用的一个不错common.js脚本
Aug 08 Javascript
Knockout text绑定DOM的使用方法
Nov 15 Javascript
jquery中checkbox全选失效的解决方法
Dec 26 Javascript
javascript 对象数组根据对象object key的值排序
Mar 09 Javascript
js使用DOM操作实现简单留言板的方法
Apr 10 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
Sep 14 Javascript
详解Webwork中Action 调用的方法
Feb 02 Javascript
jQuery树形控件zTree使用小结
Aug 02 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
Jan 19 Javascript
jQuery插件echarts去掉垂直网格线用法示例
Mar 03 Javascript
Vue安装浏览器开发工具的步骤详解
May 12 Javascript
Layui数据表格跳转到指定页的实现方法
Sep 05 Javascript
Javascript基础之数组的使用
May 13 #Javascript
JS判断图片是否加载完成方法汇总(最新版)
May 13 #Javascript
BootStrap扔进Django里的方法详解
May 13 #Javascript
JavaScript重载函数实例剖析
May 13 #Javascript
JS加载iFrame出现空白问题的解决办法
May 13 #Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
May 13 #Javascript
JS iFrame加载慢怎么解决
May 13 #Javascript
You might like
一个显示天气预报的程序
2006/10/09 PHP
php 采集书并合成txt格式的实现代码
2009/03/01 PHP
ThinkPHP3.1新特性之多层MVC的支持
2014/06/19 PHP
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
firefox事件处理之自动查找event的函数(用于onclick=foo())
2010/08/05 Javascript
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
ajax请求乱码的解决方法(中文乱码)
2014/04/10 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
2015/11/30 Javascript
JavaScript知识点总结(四)之逻辑OR运算符详解
2016/05/31 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
详解如何在vue中使用sass
2017/06/21 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
Vue中函数防抖节流的理解及应用实现
2020/04/24 Javascript
Postman参数化实现过程及原理解析
2020/08/13 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
举例讲解Django中数据模型访问外键值的方法
2015/07/21 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
Raleigh兰令自行车美国官网:英国凤头牌自行车
2018/01/08 全球购物
爱尔兰灯和灯具网上商店:Lights.ie
2018/03/26 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
汽车专业毕业生推荐信
2013/11/12 职场文书
酒店总经理职务说明书
2014/02/26 职场文书
应届毕业生自荐信
2014/05/28 职场文书
交通事故委托书范本(2篇)
2014/09/21 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
python 网络编程要点总结
2021/06/18 Python