迴圈輸出——閉包、變數作用域

Jsp發表於2018-05-14

一:使用let

for(let i=0;i<5;i++){
    setTimeout(function(){
        console.log(i);
    },1000);
}複製程式碼

二:使用閉包

for(var i=0;i<5;i++){
    (function(j){
        setTimeout(function(){
            console.log(j);
        },1000);
    })(i);
}複製程式碼

三:引數傳遞是按值傳遞

var out = function(j){
    setTimeout(function(){
        console.log(j);
    },1000);
};
for(var i=0;i<5;i++){
    out(i);
}複製程式碼


相關文章