美文网首页
循环与闭包

循环与闭包

作者: 樱木夜访流川枫 | 来源:发表于2018-05-21 21:01 被阅读0次

    概览

    块级作用域与闭包的结合功能强大。

    内容

    思考:

    for (var i = 0; i < 5; i++) {
      setTimeout(function Timer() {
        console.log(i);
      });
    }
    

    分析:尽管循环中的函数是在各个迭代中分别定义,但是它们都被封闭在共享的全局作用域中,实际上只有一个i

    1 利用IIFE

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

    2 利用let、const:

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

    相关文章

      网友评论

          本文标题:循环与闭包

          本文链接:https://www.haomeiwen.com/subject/ugtqjftx.html