【问题标题】:What's [] in [].forEach.call() [duplicate][].forEach.call() 中的 [] 是什么 [重复]
【发布时间】:2013-06-27 11:02:33
【问题描述】:

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

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

【问题讨论】:

  • 你为什么不直接做lists.forEach(function(list), {...});
  • @Blender 他在问代码的作用,所以他没有写。
  • @Stijn:也许吧。一个建议不会有坏处。
  • 雷蒙德,你链接的问题回答了我的问题。谢谢。

标签: javascript


【解决方案1】:

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

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

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

【讨论】:

  • 在这种情况下,“lists”一个数组,所以真的没有意义。
猜你喜欢
  • 2013-04-09
  • 1970-01-01
  • 2012-07-23
  • 2017-10-05
  • 2016-06-29
相关资源
最近更新 更多