gpt4 book ai didi

javascript - SAFARI : Unexpected token '=' . 期望在方法的参数列表之前打开 '('

转载 作者:行者123 更新时间:2023-12-01 15:03:01 27 4
gpt4 key购买 nike

得到了这段代码,它在所有浏览器中都能完美运行,但在 Safari(版本 11.1.2)中却不行。

class Account {
accountFields = ['field1', 'field2', 'field3']
}

在 Safari 调试器中出现以下错误:

Unexpected token '='. Expected an opening '(' before a method's parameter list



所以我尝试添加 ()无处不在,在阵列周围,之前,之后等。没有任何效果。

最佳答案

您正在使用称为 public field declarations 的实验性功能。目前在 stage 3 . 唯一支持此功能的 Safari 版本是 v14.1 (2021 年 4 月 26 日发布)及更高版本。如果您需要支持旧版本的 Safari/更多种类的浏览器,您需要遵循以下建议之一。

您可以使用 constructor() method 而不是使用公共(public)字段声明为您的类实例定义属性。使用构造函数确实有 good browser compatibility (对于 IE 支持,您可以使用 constructor function ):

class Account {
constructor() {
this.accountFields = ['field1', 'field2', 'field3'];
}
}

正如 @Baz 的评论中指出的那样,您也可以使用 Babel 作为替代解决方案。使用 babel 意味着您不必更改代码,如果您在整个项目中大量使用公共(public)字段声明,这可以让您更轻松。 Babel 会将您的现代 JS 代码转译/编译成许多浏览器都可以理解的旧版(ES5 及以下)JS 代码。您可以使用 this像这样的 babel 插件。
首先,安装 babel 插件:
npm install --save-dev @babel/plugin-proposal-class-properties
然后将插件添加到您的配置文件中:
{
"plugins": ["@babel/plugin-proposal-class-properties"]
}
有关其他安装选项(babel CLI 等),请参阅 usage section插件的文档。

关于javascript - SAFARI : Unexpected token '=' . 期望在方法的参数列表之前打开 '(',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60026651/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com