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

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

不使用es6中的let,es5如何輸出0-9?

不使用es6中的let,es5如何輸出0-9?

var funcs=[];for(var i=0;i<10;i++){? ?? ?funcs.push(function(){console.log(i)})}funcs.forEach(function(func){? ?func()?})
查看完整描述

6 回答

?
橋本奈奈未

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

var?funcs=[];
for(var?i=0;i<10;i++){???
????(function(i)?{		
????????funcs.push(function(){console.log(i)})???
????})(i);
}
funcs.forEach(function(func){???func()?})

二、

var?funcs=[];
function?pushFun(i)?{	
????funcs.push(function()?{?console.log(i)?})
}
for(var?i=0;i<10;i++){	
????pushFun(i);
}
funcs.forEach(function(func){???func()?})

三、

var?funcs=[];
function?logIndex(i)?{	
????return?function()?{		
????????console.log(i);	
????}
}
for(var?i=0;i<10;i++){	
????funcs.push(logIndex(i));
}
funcs.forEach(function(func){???func()?})

首先,你要先理解為什么不用let就不能輸出0-9,或者說為什么需要let才能輸出0-9;知道了根本問題才有辦法去解決。

方案一應(yīng)該是網(wǎng)上最多提到的方式,就是使用一個IIFE來將讓變量有類似let一樣的塊級作用域的效果,因為ES6之前也就是ES5,JS只有全局作用域和函數(shù)作用域,一旦你的函數(shù)中有i這個變量,那么實際上console.log打印出的i是當時傳入該函數(shù)中的值,就不再是外部for循環(huán)最后的值了。

方案二不過是方案一的變種,理論上是一個東西,把IIFE抽出去變成一個顯式的函數(shù)調(diào)用,同樣把值傳進去即可。

方案三說白了也一樣,不過是在寫法上靠近函數(shù)式而已。本質(zhì)還是跟之前差不多。

查看完整回答
1 反對 回復(fù) 2019-08-18
?
qq_風(fēng)

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

function?printNum(num1,num2){		
????if(num1?>?num2)?return
????while(num1<num2){?console.log(num1++)}
}	
printNum(0,10)

自己改改吧??

查看完整回答
反對 回復(fù) 2019-08-21
  • 6 回答
  • 0 關(guān)注
  • 2705 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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