我正在尝试学习Node.js.我动态构建了一个数组,我使用push在每个元素中放置一个函数。
var arr=[];
for(var x=0;x<8;x++)
arr.push(function(){ console.log(x); });
我想'我正在将一个匿名函数推入到数组中,在调用时应该在迭代期间向控制台打印'x'的值。 IE第一次迭代x == 0,第二次x == 1等等,直到第8次迭代,这意味着推送的最大数量应为7.然后尝试使用forEach循环将每个元素打印到控制台
arr.forEach(function(ar)
{
ar();
});
我认为'这个循环将从元素[0]迭代到数组的末尾。在每次迭代中,我都会调用该元素的函数。 ar();
我以为我会将数字0,1,2,3 ... 7打印到控制台,每个数字都在新行上。
对于每次迭代,数字8将打印到控制台的新行。
8号不应该是7吗?为什么只有8张被打印? 发生了什么事?
如果我没有将一个函数推入数组但是按下x并使用forEach循环来调试console.log,则会打印正确的数字。