由于某些依赖性原因,我将Windows XP与Chrome 49.0.2623.75(64位)一起使用。我正在使用ECMAScript中的rest运算符,但给出的错误为“未捕获的语法错误:意外的令牌...”。此代码在最新的Chrome版本中有效。有没有办法或依赖性在Chrome 49的代码下运行。我的代码写在下面。

this.dict = this.header.reduce((obj, k, i) => ({...obj, [k]: this.class[i] }), {})

最佳答案

无法在不受支持的浏览器中使用本机的ES6“ spread”运算符(...)。没有1:1的polyfill(例如Array.prototype方法之类的东西)。

您的选择包括:


使用捆绑器工具(如webpackbabel结合使用)来解析ES6并输出与浏览器客户端兼容的ES5。
手动将“ 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”来表示。 “ Spread语法”和“ Spread运算符”可能是引用此运算符的最可识别的方式,因为它包含所有用例,而“ rest parameter”通常仅指在传递的参数中使用...的用例功能。

关于javascript - 其余语法在Chrome 49中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57279900/

10-13 08:45