DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 淺析javascript異步執行函數導致的變量變化問題解決思路
淺析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異步執行函數導致的變量變化問題解決思路就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved