第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

代碼輸出結(jié)果疑問

代碼輸出結(jié)果疑問

咩咩咩3124927 2016-09-25 01:15:10
var?fnArr=[]; for(var?i=0;i<10;i++){ ??fnArr[i]=function(){ ????return?i; ??}; } alert(fnArr[3]());最后輸出的結(jié)果是10.百思不得其解,可有同學幫我解釋下,多謝了.
查看完整描述

2 回答

已采納
?
阿旭_

TA貢獻217條經(jīng)驗 獲得超353個贊

因為返回的變量是最終i的值。

如果只輸出fnArr即:alert(fnArr);會看到彈出來的都是方法function(){return i;}

i是在for中聲明的var i,最終for循環(huán)退出的時候,i是等于10的,所以不管你調(diào)用的是fnArr[3]()還是fnArr[4]()最終返回的i的結(jié)果都是10。

你可以試著在alert(fnArr[3]());之前加一句i=100,那返回的結(jié)果就是100

查看完整回答
2 反對 回復 2016-09-25
?
藍with黑

TA貢獻5條經(jīng)驗 獲得超0個贊

因為循環(huán)最后都是return 最后一個;

把i<10改成i<8,再運行一次,你應該就明白了。

或:

var fnArr=[];

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

? fnArr[i]=function(){????????

??return i;

? };

}

//其實數(shù)組每項都是function(){return i},而在之前的循環(huán)后值已經(jīng)是10;

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

console.log(fnArr[j]());

}


查看完整回答
反對 回復 2016-09-25
  • 2 回答
  • 0 關(guān)注
  • 1596 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號