简要咨询咨询QQ网站导航网站搜索手机站点联系我们设为首页加入收藏 

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

来源:易贤网   阅读:819 次  日期:2016-07-01 09:29:59

温馨提示:易贤网小编为您整理了“浅析javascript异步执行函数导致的变量变化问题解决思路”,方便广大网友查阅!

下面小编就为大家带来一篇浅析javascript异步执行函数导致的变量变化问题解决思路。小编觉得挺不错的,现在分享给大家,也给大家做个参考

浅析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异步执行函数导致的变量变化问题解决思路就是小编分享给大家的全部内容了,希望能给大家一个参考

更多信息请查看网络编程
点此处就本文及相关问题在本站进行非正式的简要咨询(便捷快速)】     【点此处查询各地各类考试咨询QQ号码及交流群
上一篇:jQuery Easyui 验证两次密码输入是否相等
下一篇:Javascript基础之数组的使用
易贤网手机网站地址:浅析javascript异步执行函数导致的变量变化问题解决思路
由于各方面情况的不断调整与变化,易贤网提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!