<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      setTimeout 學習閉包

      @(技術筆記)[css]

      學習參考網站

      css 網站,可供參考

      javascript學習網站

      var create = function (i){
          return function(){
              console.log(i);
          };
      };
      
      for ( var i = 0; i < 5; i++ ) {
          console.log(i);
          setTimeout( create(i), i * 1000 );
      }
      

      上面代碼運行解釋:

      這是一個倒計時代碼片段!
      javascript的到計時代碼并不是那么好寫的哈。呵呵

      setTimeout 是一個異步執行的函數。函數定義如下:
      Alt text
      第一個參數是要執行的方法(function),第二個參數是延遲時間。

      好的。那我們這樣寫會有什么結果:

      for ( var i = 0; i < 4; i++ ) {
          setTimeout( function () {console.log(i)}, i * 1000 );
      }
      

      輸出結果為

      4
      4
      4
      4

      我是這樣理解的,setTimeout函數式異步函數,它會在for循環結束后執行。這時候在運行棧中的匿名函數i的值為4,所以運行的結果都為4。

      步驟如下:

      1. 第一個for循環,在棧中壓入帶執行的方法
        setTimeout( function () {console.log(i)}, i * 1000 );
        此時i為1.
      2. 第二次for循環,在棧中壓入待執行的方法
        setTimeout( function () {console.log(i)}, i * 1000 );
        此時i為2。這個i是個全局變量,所以此時第一壓入棧中的函數i也為2.

      以下重復上面步驟,最后壓入棧中待執行的函數指向的變量值都為4.

      所以最終的輸出結果為 上面所示。

      那么我們如何才能輸出4個不一樣的值呢?
      如何讓函數保存住它的變量。

      for (var i = 0; i < 4; i++) {
          setTimeout(create(i), i * 1000);
      }
      

      create(i) 是執行函數create并傳入參數i,這個函數會立刻執行,這個函數執行完后有一個返回值。這個返回值也是一個函數,這個函數保存了i變量,這個i變量不會變。它的作用域在這個返回的匿名函數。此時i為1.

      剩下同理,函數保存了變量的值。所以這次執行結果會按照我們開始設想的那樣輸出:
      Alt text

      這里用閉包保存變量的值。

      posted @ 2014-09-05 18:53  xiquwugou  閱讀(279)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 在线天堂www在线| 浦江县| 国产中文字幕日韩精品| 亚洲热无码av一区二区东京热av| 丝袜人妻一区二区三区网站| 韩国三级+mp4| 精品国产精品午夜福利| 成av免费大片黄在线观看| 国产精品毛片在线看不卡| 安溪县| 九九热这里只有精品在线| 在线精品视频一区二区三四| 色婷婷久久综合中文久久一本| 无码人妻斩一区二区三区| 99久久婷婷国产综合精品青草漫画 | 国产95在线 | 欧美| 亚洲精品国产精品不乱码| 亚洲日韩国产精品第一页一区| 丁香五月婷激情综合第九色| 老司机精品影院一区二区三区| 亚洲中文字幕一区二区| 亚洲日本欧美日韩中文字幕| 婷婷国产成人精品视频| 丰满人妻熟妇乱又仑精品| 亚洲欧美日韩愉拍自拍美利坚| 高清中文字幕国产精品| 麻豆果冻传媒2021精品传媒一区| 青青草国产自产一区二区| 成人午夜在线观看日韩| 老色鬼在线精品视频在线观看 | av在线播放日韩亚洲欧| 99久久综合精品五月天| 一区二区三区国产亚洲自拍| 国产亚洲精品第一综合另类无码无遮挡又大又爽又黄的视频 | 蜜臀av色欲a片无码精品一区| 国产精品成| 国产成人精品午夜在线观看| 麻豆一区二区中文字幕| 18黑白丝水手服自慰喷水网站| 中国亚洲女人69内射少妇| 自拍偷在线精品自拍偷99|