浅析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 相关文章推荐
javaScript 判断字符串是否为数字的简单方法
Jul 25 Javascript
functional继承模式 摘自javascript:the good parts
Jun 20 Javascript
JavaScript异步调用定时方法并停止该方法实现代码
Mar 16 Javascript
Jquery实现简单的动画效果代码
Mar 18 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
Jul 28 Javascript
JQuery给网页更换皮肤的方法
May 30 Javascript
Bootstrap模态框调用功能实现方法
Sep 19 Javascript
关于Ajax的原理以及代码封装详解
Sep 08 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
Oct 10 Javascript
JavaScript 处理树数据结构的方法示例
Jun 16 Javascript
Vue-cli项目部署到Nginx服务器的方法
Nov 01 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
Jan 19 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多个图片压缩成ZIP的方法
2020/08/18 PHP
Aster vs Newbee BO3 第三场2.18
2021/03/10 DOTA
图片自动更新(说明)
2006/10/02 Javascript
通过javascript获取iframe里的值示例代码
2013/06/24 Javascript
玩转方法:call和apply
2014/05/08 Javascript
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
详解jQuery UI库中文本输入自动补全功能的用法
2016/04/23 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
原生JS实现圣旨卷轴展开效果
2017/03/06 Javascript
JavaScript运动框架 解决防抖动问题、悬浮对联(二)
2017/05/17 Javascript
jQuery实现模糊查询的方法分析
2018/05/10 jQuery
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
2018/06/14 jQuery
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
浅谈Webpack多页应用HMR卡住问题
2019/04/24 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
全网小程序接口请求封装实例代码
2020/11/06 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
python批量生成本地ip地址的方法
2015/03/23 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
python导入坐标点的具体操作
2019/05/10 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
HTML5 canvas基本绘图之绘制矩形
2016/06/27 HTML / CSS
捷克时尚网上商店:OTTO
2018/03/15 全球购物
Java面向对象面试题
2016/12/26 面试题
夜大毕业自我鉴定
2013/10/11 职场文书
食品工程专业求职信
2014/06/15 职场文书
群教个人对照检查材料
2014/08/20 职场文书
歌剧魅影观后感
2015/06/05 职场文书
绿里奇迹观后感
2015/06/15 职场文书
初中英语教学反思范文
2016/02/15 职场文书
Tomcat用户管理的优化配置详解
2022/03/31 Servers
Golang 对es的操作实例
2022/04/20 Golang