最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

請(qǐng)教一個(gè)js里的循環(huán)問(wèn)題。

請(qǐng)教一個(gè)js里的循環(huán)問(wèn)題。

慕田峪8701529 2018-03-13 22:35:14
var?arr?=?[]?; for(var?i=0;i<10;i++){ arr[i]?=?function(){ console.log(i) } } arr[5]()?//這個(gè)打印結(jié)果為什么是10而不是5
查看完整描述

3 回答

?
安然桑丶

TA貢獻(xiàn)25條經(jīng)驗(yàn) 獲得超1個(gè)贊

因?yàn)榇藭r(shí)循環(huán)結(jié)束后, i是10, 因此不管你調(diào)用`arr[5]()`還是`arr[6]()`都是打印10.?

解決這種問(wèn)題 ES3/5 可以使用閉包和自執(zhí)行函數(shù). 最簡(jiǎn)潔的還是將`var`聲明替換為`let`. 不過(guò)這是ES6的語(yǔ)法.


ES3/5方式:

var?arr?=?[]?;
for(var?i=0;i<10;i++){
??arr[i]?=?(function(i){
????return?function?()?{
??????console.log(i)
????}
??})(i)
}
arr[5]()????//?5
arr[9]()????//?9


查看完整回答
反對(duì) 回復(fù) 2018-03-14
?
慕勒7123956

TA貢獻(xiàn)35條經(jīng)驗(yàn) 獲得超15個(gè)贊

你把var變成let 就是你想要的了,因?yàn)楹瘮?shù)里面只是一個(gè)console.log() 動(dòng)作.里面的變量i是這10個(gè)函數(shù)公用的一個(gè)變量。所以循環(huán)結(jié)束,i就變成了10.

用let的話(huà),就是把每一個(gè)循環(huán)變成了塊級(jí)作用域,也可以利用函數(shù)作用域

arr[i]=function(){
var?temp=i;
console.log(temp);
}
}


查看完整回答
反對(duì) 回復(fù) 2018-03-14
?
anet

TA貢獻(xiàn)79條經(jīng)驗(yàn) 獲得超19個(gè)贊

注意看循環(huán)體

只是簡(jiǎn)單的賦值操作而已

循環(huán)結(jié)束,i的值為10,這個(gè)時(shí)候輸出自然為10

查看完整回答
反對(duì) 回復(fù) 2018-03-13
  • 3 回答
  • 0 關(guān)注
  • 1773 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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