由于某些依赖性原因,我正在使用 Windows XP 和 Chrome 49.0.2623.75(64 位)。我正在使用 ECMAScript 中的剩余运算符,但它给出错误“未捕获的语法错误:意外的 token ...”此代码可在最新的 Chrome 版本中运行。有没有办法或依赖项可以在 Chrome 49 上运行以下代码。我的代码写在下面。
this.dict = this.header.reduce((obj, k, i) => ({...obj, [k]: this.class[i] }), {})
最佳答案
无法在不受支持的浏览器中使用 native ES6“扩展”运算符 (...
)。不存在 1:1 的 polyfill(就像 Array.prototype 方法一样)。
您的选择包括:
手动将“spread”运算符替换为“apply”的用法。请参阅this article举个例子。另外,the MDN page on the rest operator有一个示例说明如何将“apply”的使用替换为“spread”运算符,您可以手动反转这些示例。
其他背景:
“rest/spread”运算符是 ES6/ES2015 中添加的“syntactic sugar ”工具( as discussed in this article ,该版本的 JavaScript 通过两个名称来引用)。它的命名有点令人困惑,因为有时它被称为“rest parameter ”或“spread syntax ”。 “扩展语法”和“扩展运算符”可能是引用该运算符最容易识别的方式,因为它包括所有用例,而“其余参数”通常仅指使用 ...< 的用例
在传递给函数的参数中。
关于javascript - 其余语法在 Chrome 49 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57279900/