javascript 闭包是如何处理父函数中 let 形成的块级作用域中的变量呢?

function test(){

  var arr = [];

  for(var i = 0;i < 10;i++){

    arr[i] = function(){

      return i;

    };

  }

  for(var a = 0;a < 10;a++){

    console.log(arr[a]());

  }

}

test(); // 连续打印 10 个 10

为什么把上面第三行代码的 var i = 0 改为 let i = 0 后,调用 test() ,就会打印 1到9 了呢?

javascript 闭包是如何处理父函数中 let 形成的块级作用域中的变量呢?


墨色风雨
浏览 639回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript