嗨,我一直在探索闭包和 javascript 核心概念,我不明白为什么 console.log(factory[i]) 输出未定义我已经将我的函数推到了那里,对吗?如果我在循环外调用 temp 它说未定义,而如果我在循环内调用它返回有点困惑谁能解释我?这是我的代码
var fruits=["apple","orange"];
var factory=[];
for(var i=0;i<fruits.length;i++)
{
var temp=function()
{
console.log(fruits[i]);
}
factory.push(temp());
}
temp();
console.log(factory);
for(var i=0;i<factory.length;i++)
{
temp(i);
console.log(factory[i]);
}