[] .forEach.call()中的[]是什么

时间:2013-06-29 23:21:59

标签: javascript

在下面的代码中,我不确定[]应该表示什么。我假设它只是象征着最近声明的数组。任何人都可以澄清吗?

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

1 个答案:

答案 0 :(得分:17)

这是一个空数组。它究竟是什么阵列并不重要;它只需要一些数组来获取数组的forEach方法。您也可以使用Array.prototype.forEach直接获取它,而不是创建一个空数组并从中挖掘forEach

当您拥有类似于数组的对象(例如NodeList;包含length012等时,通常会使用此方法。properties)但实际上不是数组。类似数组的对象没有数组方法,但是如果你可以使用适当的this(使用call实现)运行数组方法,它们仍然可以工作。

由于这里实际上有一个真正的数组而不是像这样的对象,你可以直接调用forEach,例如lists.forEach(...)