[英]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.