5

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

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

1 回答 1

17

这是一个空数组。它是什么数组真的无关紧要。它只需要一些数组来获取数组的forEach方法。您也可以使用Array.prototype.forEach直接获取它,而不是创建一个空数组并从中挖掘forEach出来。

NodeList当您有一个类似数组的对象(如; 具有length012等属性)但实际上不是数组时,通常会使用这种方法。类似数组的对象没有数组方法,但是如果您可以让数组方法以适当的方式运行this(通过 实现call),它们仍然可以工作。

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

于 2013-06-29T23:23:04.173 回答