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

ear*_*lee 5 javascript

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

var lists = [racersList, volunteersList];
[].forEach.call(lists, function(list) {
    ...
});
Run Code Online (Sandbox Code Playgroud)

ick*_*fay 17

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

这种方法通常被用来当有类似阵列的对象(如NodeList,具有length,0,1,2,等性能),但实际上并不是一个数组.类似数组的对象没有数组方法,但是如果你可以使用适当的this(实现的call)运行数组方法,它们仍然可以工作.

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