浅析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 相关文章推荐
jQuery UI的Dialog无法提交问题的解决方法
Jan 11 Javascript
javascript 拖动表格行实现代码
May 05 Javascript
MultiSelect左右选择控件的设计与实现介绍
Jun 08 Javascript
JS动态添加与删除select中的Option对象(示例代码)
Dec 25 Javascript
使用jQuery动态加载js脚本文件的方法
Apr 03 Javascript
js跨域问题浅析及解决方法优缺点对比
Nov 08 Javascript
AngularJS 模型详细介绍及实例代码
Jul 27 Javascript
原生js实现新闻列表展开/收起全文功能
Jan 20 Javascript
jQuery获取随机颜色的实例代码
May 21 jQuery
浅谈手写node可读流之流动模式
Jun 01 Javascript
vue-router 中 meta的用法详解
Nov 01 Javascript
vue实现购物车的小练习
Dec 21 Vue.js
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中数字检测is_numeric与ctype_digit的区别介绍
2012/10/04 PHP
PHP时间戳与日期之间转换的实例介绍
2013/04/19 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
2014/08/22 PHP
joomla数据库操作示例代码
2016/01/06 PHP
Javascript 的addEventListener()及attachEvent()区别分析
2009/05/21 Javascript
JQuery UI皮肤定制
2009/07/27 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
用js控制组织结构图可以任意拖拽到指定位置
2014/01/17 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
vue中$refs的用法及作用详解
2018/04/24 Javascript
vue移动端下拉刷新和上拉加载的实现代码
2018/09/08 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
使用python实现BLAST
2018/02/12 Python
Python笔试面试题小结
2019/09/07 Python
Python基础之变量基本用法与进阶详解
2020/01/03 Python
Python PyQt5模块实现窗口GUI界面代码实例
2020/05/12 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
python将下载到本地m3u8视频合成MP4的代码详解
2020/11/24 Python
华润集团网上药店:健一网
2016/09/19 全球购物
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
资产经营总监岗位职责
2013/12/04 职场文书
总经理岗位职责描述
2014/02/08 职场文书
安全主题班会教案
2015/08/12 职场文书
python通配符之glob模块的使用详解
2021/04/24 Python
python自动化测试通过日志3分钟定位bug
2021/11/20 Python