浅析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 相关文章推荐
Mootools 1.2教程 排序类和方法简介
Sep 15 Javascript
能说明你的Javascript技术很烂的五个原因分析
Oct 28 Javascript
一个封装js代码-----展开收起效果示例
Jul 03 Javascript
JS短路原理的应用示例 精简代码的途径
Dec 13 Javascript
JS实现的通用表单验证插件完整实例
Aug 20 Javascript
学习JavaScript设计模式(链式调用)
Nov 26 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
Oct 27 Javascript
JavaScript表单验证开发
Nov 23 Javascript
手动初始化Angular的模块与控制器
Dec 26 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
Jan 04 Javascript
使用travis-ci如何持续部署node.js应用详解
Jul 30 Javascript
node中间层实现文件上传功能
Jun 11 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
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
PHP实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
php的4种常见运行方式
2015/03/20 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
jQuery 学习 几种常用方法
2009/06/11 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
2017/04/20 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
微信小程序自定义tabBar在uni-app的适配详解
2019/09/30 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
2020/05/18 Javascript
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
简单了解django缓存方式及配置
2019/07/19 Python
python函数的作用域及关键字详解
2019/08/20 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
FC-Moto丹麦:欧洲最大的摩托车服装和头盔商店之一
2019/08/20 全球购物
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
Tahari ASL官方网站:高级设计师女装
2021/03/15 全球购物
函授毕业生自我鉴定
2013/11/06 职场文书
幼儿园五一活动方案
2014/02/07 职场文书
协议书与合同的区别
2014/04/18 职场文书
英文推荐信格式范文
2014/05/09 职场文书
植树节口号
2014/06/21 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
优秀党员个人总结
2015/02/14 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
手把手教你使用TensorFlow2实现RNN
2021/07/15 Python