繁体   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