function fn() { let arr = []; for (var i = 0; i < 5; i++) { arr[i] = function (i) { return i; }; } return arr; } let list = fn(); console.log(list); for (let i = 0; i < list.length; i++) { console.log(list[i]()); }
时间: 2023-03-31 20:03:00 浏览: 135
javascript中new Array()和var arr=[]用法区别
这是一个关于 JavaScript 函数的问题,我可以回答。这段代码的输出结果是 [ƒ, ƒ, ƒ, ƒ, ƒ],因为在 for 循环中使用了 var 声明 i,导致 i 的作用域为全局,所以在函数中返回的 i 始终是最后一次循环的结果。如果将 var 改为 let 声明 i,则每次循环都会创建一个新的 i,输出结果为 [, 1, 2, 3, 4]。
阅读全文