为什么MS Edge不使用spread元素和querySelector?

时间:2017-10-10 16:43:17

标签: javascript ecmascript-6 microsoft-edge

在另一个问题中发布了这个:

this.products = [...document.querySelectorAll('.product')];

Edge将因以下错误而失败:

  

预期的功能

然而这是有效的:

var params = ['hello', '', 7];
var other = [ 1, 2, ...params];

为什么不是顶级的工作在Edge上(它在Chrome上工作)?

3 个答案:

答案 0 :(得分:8)

您可以使用Array.from,它会从像object这样的数组生成一个数组。

this.products = Array.from(document.querySelectorAll('.product'));

答案 1 :(得分:1)

好吧,看起来Bergi和Felix走在了正确的轨道上:在MDN的这个document中,他们讨论了迭代器。

  

一些内置构造,​​例如扩展运算符,在引擎盖下使用相同的迭代协议:

所以Array在{Edge}中有entries() nodelist并且不支持迭代。

Nina的答案是转到的!

答案 2 :(得分:0)

更新到2020年,Edge现在内部使用Chrome v8。 要求用户下载Edge的最新版本。无需在旧Edge中照顾这种特定情况。