浅析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 相关文章推荐
JS 实现Json查询的方法实例
Apr 12 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
Oct 24 Javascript
JS中完美兼容各大浏览器的scrolltop方法
Apr 17 Javascript
jquery实现手风琴效果
Nov 20 Javascript
基于jQuery的Web上传插件Uploadify使用示例
May 19 Javascript
深入理解jquery中的事件与动画
May 24 Javascript
AngularJS入门之动画
Jul 27 Javascript
微信小程序 scroll-view组件实现列表页实例代码
Dec 14 Javascript
javascript 缓冲运动框架的实现
Sep 29 Javascript
vue mint-ui学习笔记之picker的使用
Oct 11 Javascript
详解Vuex管理登录状态
Nov 13 Javascript
vue表单自定义校验规则介绍
Aug 28 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
PHP中4种常用的抓取网络数据方法
2015/06/04 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
基于prototype扩展的JavaScript常用函数库
2010/11/30 Javascript
一些javascript一些题目的解析
2010/12/25 Javascript
javascript string字符串优化问题
2011/07/31 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
js封装可使用的构造函数继承用法分析
2015/01/28 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
jQuery实现可拖拽的许愿墙效果【附demo源码下载】
2016/09/14 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
Python GAE、Django导出Excel的方法
2008/11/24 Python
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
利用Python获取操作系统信息实例
2016/09/02 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
Python中的TCP socket写法示例
2018/05/11 Python
python每天定时运行某程序代码
2019/08/16 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
python 图像插值 最近邻、双线性、双三次实例
2020/07/05 Python
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
Canvas系列之滤镜效果
2019/02/12 HTML / CSS
英国时尚家具、家居饰品及礼品商店:Graham & Green
2016/09/15 全球购物
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
英国领先的瓷砖专家:Walls and Floors
2018/04/27 全球购物
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
荷兰游戏商店:Allyouplay
2019/03/16 全球购物
中文系学生自荐信范文
2013/11/13 职场文书
奥巴马当选演讲稿
2014/09/10 职场文书
2014年物资管理工作总结
2014/12/02 职场文书
放假通知格式
2015/04/14 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书