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