簡體   English   中英

JavaScript閉包和for循環

[英]JavaScript closures and a for loop

我想知道為什么以下代碼的結果是0而不是3。

var fn = function(){
    for (i = 0; i < 3; i++){
        return function(){
            console.log(i);
        };
    }
}();

fn();

因為您的return語句會強制循環終止,並且函數將停止執行。

您可以在此處了解有關return語句的更多信息return : //en.wikipedia.org/wiki/Return_statement

您將返回一個調用console.log的閉包。 執行此return語句時,您將停止繼續執行fn() ,它返回需要返回的第一件事並停止執行。 如果要console.log,請除去return語句(並關閉)。

var fn = function(){
    for (i = 0; i < 3; i++){
        console.log(i);
    }
}();

fn();

另請參閱: https : //developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/return

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM