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
语句的更多信息 - https://en.wikipedia.org/wiki/Return_statement
您返回的闭包调用console.log
.当你执行这个语句时return
你正在阻止fn()
继续,它会返回需要返回的第一件事并停止执行。如果要控制台.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
相关文章:
- 为什么JavaScript在for循环为3时向所有4发出警报
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 我的javascript for循环不起作用
- For循环冻结Javascript
- 如何在for循环中添加事件侦听器
- 双“for”循环(循环)
- javascript for循环不起作用
- for循环中的javascript if语句找不到==
- Javascript在for循环中等待处理请求
- 我没有'I don’我不理解for在循环中的用途
- 为什么在 Javascript 中使用空的 for 循环 - for(;;).
- 错误后如何停止循环“FOR”
- 如何使用循环 for 与 java 脚本一起检查输入中的值
- 如何正确使用ngRepeat,同时使用循环for
- 是否可以使用循环(for/while)来制作动画?
- 在循环for循环时如何进入和退出
- Javascript原型循环for in数组
- 在对象数组中循环for
- Javascript循环:for循环工作,但不能映射
- 如何创建一个循环"for"在json