Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript rest语法在Chrome49中不起作用_Javascript_Google Chrome - Fatal编程技术网

Javascript rest语法在Chrome49中不起作用

Javascript rest语法在Chrome49中不起作用,javascript,google-chrome,Javascript,Google Chrome,由于某些依赖性原因,我将Windows XP与Chrome 49.0.2623.75(64位)一起使用。我使用的是ECMAScript中的rest操作符,但它给出的错误是“未捕获的syntaxerror:意外标记…”这段代码在最新的Chrome版本中运行。在Chrome49的代码下面是否有运行的方法或依赖项。我的代码写在下面 this.dict = this.header.reduce((obj, k, i) => ({...obj, [k]: this.class[i] }), {})

由于某些依赖性原因,我将Windows XP与Chrome 49.0.2623.75(64位)一起使用。我使用的是ECMAScript中的rest操作符,但它给出的错误是“未捕获的syntaxerror:意外标记…”这段代码在最新的Chrome版本中运行。在Chrome49的代码下面是否有运行的方法或依赖项。我的代码写在下面

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

无法在不受支持的浏览器中使用ES6“spread”运算符(
)。没有1:1的多边形填充(比如Array.prototype方法)

你的选择包括:

  • 使用bundler工具(如combined with)解析ES6并输出与浏览器客户端兼容的ES5

  • 使用“apply”手动替换“spread”运算符。请参见示例。此外,还有一个如何将“apply”的用法替换为“spread”操作符的示例,您可以手动反转这些示例

  • 其他背景:


    “rest/spread”操作符是ES6/ES2015中添加的一个“”工具(,该版本的JavaScript由两个名称引用)。它的命名有点混乱,因为有时它被“”或“”引用。“扩展语法”和“扩展运算符”可能是引用此运算符的最容易识别的方式,因为它包括所有用例,而“rest参数”通常仅指在传递给函数的参数中使用
    的用例

    如果您可以修改您可以使用的代码


    您将需要使用一台transpiler。较旧的浏览器不支持2018年指定的语言功能。作为参考,Chrome 49于2016-03-02发布。为了明确起见(并帮助可能希望进一步搜索的人),这实际上是使用了扩展语法,而不是rest语法。对象文字的rest/spread还未成为ES6(2015)的一部分但对于ES2018。根据这篇文章,ES2015中似乎添加了扩展运算符/rest参数:@HereticMonkey感谢您的反馈,添加了澄清research@CalebJay不适用于对象文本。阅读您链接的MDN文章。
    this.dict = this.header.reduce((obj, k, i) => Object.assign(obj, { [k]: this.class[i] }), {})