2 回答

TA貢獻(xiàn)217條經(jīng)驗(yàn) 獲得超353個(gè)贊
因?yàn)榉祷氐淖兞渴亲罱Ki的值。
如果只輸出fnArr即:alert(fnArr);會(huì)看到彈出來的都是方法function(){return i;}
i是在for中聲明的var i,最終for循環(huán)退出的時(shí)候,i是等于10的,所以不管你調(diào)用的是fnArr[3]()還是fnArr[4]()最終返回的i的結(jié)果都是10。
你可以試著在alert(fnArr[3]());之前加一句i=100,那返回的結(jié)果就是100

TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超0個(gè)贊
因?yàn)檠h(huán)最后都是return 最后一個(gè);
把i<10改成i<8,再運(yùn)行一次,你應(yīng)該就明白了。
或:
var fnArr=[];
for(var i=0;i<10;i++){
? fnArr[i]=function(){????????
??return i;
? };
}
//其實(shí)數(shù)組每項(xiàng)都是function(){return i},而在之前的循環(huán)后值已經(jīng)是10;
for(var j=0;j<10;j++){
console.log(fnArr[j]());
}
添加回答
舉報(bào)