鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ es6 let聲明變量用于for循環(huán),怎么分布解析出來?

es6 let聲明變量用于for循環(huán),怎么分布解析出來?

我在學(xué)習(xí)阮一峰老師的 es6,看到這段代碼,結(jié)果是 6。

var a = [];
for (let i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); 

作者解釋說 “變量i是let聲明的,當(dāng)前的i只在本輪循環(huán)有效,所以每一次循環(huán)的i其實(shí)都是一個(gè)新的變量,所以最后輸出的是6。”

那么問題來了,我想將代碼一步一步解析出來,不用 循環(huán)操作,怎么實(shí)現(xiàn)呢?(可以將 <10 改成 <3,以減少循環(huán)次數(shù)來測(cè)試)

回答
編輯回答
嫑吢丕

其實(shí)就是創(chuàng)建數(shù)組,數(shù)組每一項(xiàng)就是一個(gè)函數(shù), a[n]() 執(zhí)行數(shù)組里的第N個(gè)函數(shù)
例如:

var a = []; //創(chuàng)建數(shù)組賦值
a[1] = function () {
    console.log(1);
  };
a[2] = function () {
    console.log(2);
  };
a[3] = function () {
    console.log(3);
  };

//a =[a[1],a[2],a[3]]

a[3]() // 3

2017年5月17日 15:59