Javascript 什么';[].forEach.call()中的s[]

Javascript 什么';[].forEach.call()中的s[],javascript,Javascript,在下面的代码中,我不确定[]应该代表什么。我假设它只是象征最近声明的数组。有人能澄清一下吗 var lists = [racersList, volunteersList]; [].forEach.call(lists, function(list) { ... }); 这是一个空数组。它真的不在乎它是什么数组;它只需要一些数组就可以得到数组的forEach方法。您还可以使用Array.prototype.forEach直接获取它,而不是创建一个空数组并从中挖掘forEach 这种方法

在下面的代码中,我不确定
[]
应该代表什么。我假设它只是象征最近声明的数组。有人能澄清一下吗

var lists = [racersList, volunteersList];
[].forEach.call(lists, function(list) {
    ...
});

这是一个空数组。它真的不在乎它是什么数组;它只需要一些数组就可以得到数组的
forEach
方法。您还可以使用
Array.prototype.forEach
直接获取它,而不是创建一个空数组并从中挖掘
forEach

这种方法通常用于具有类似数组的对象(如
NodeList
;has
length
0
1
2
等属性)但实际上不是数组的情况。类似数组的对象没有数组方法,但是如果您可以让数组方法与相应的
this
一起运行(通过
调用实现),它们仍然可以工作


因为这里实际上有一个真正的数组而不是类似数组的对象,所以可以直接调用
forEach
,例如,
lists.forEach(…)

为什么不直接执行
lists.forEach(函数(list),{…})?@Blender他在问代码是做什么的,所以他没有写出来。@Stijn:也许吧。一个建议不会有什么坏处雷蒙德,你联系的问题回答了我的问题。谢谢。在这种情况下,“列表”是一个数组,所以没有什么意义。