gpt4 book ai didi

javascript - 为什么 static var 语法有时会抛出错误,有时不会

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

我很困惑,在不同的项目中我有时可以写

class Foo {
static BAR = {
foobar: 'baz'
}
}

有时这无法编译,而我必须编写

class Foo {
static get BAR() {
return {
foobar: 'baz'
}
}
}

我真的不喜欢第二种语法,第一种更简洁。问题是第一个语法在一个项目中有效,而在另一个项目中它会抛出语法错误,我不知道为什么。

看来使用不同的 Babel 预设有效果。不同的 ECMAScript 版本对此有不同的定义吗?

最佳答案

区别在于,一个是静态的class property而另一个是 static method ,具体来说是一个 setter/getter 。类属性是 Babel stage-2 preset 的一部分1。根据链接:

Stage 2: draft

What is it? A first version of what will be in the specification. At this point, an eventual inclusion of the feature in the standard is likely.

因此,类属性还不是 ECMAScript 的一部分,但很可能会出现在以后版本 ECMAScript 2016 的规范中。另一方面,静态方法已经是 ECMAScript 2015 规范的一部分,因此支持 ECMAScript 2015 的浏览器已经允许您执行此操作。

<小时/>

1 预设的某些阶段描述 here并描述某个功能所处的发展阶段。

关于javascript - 为什么 static var 语法有时会抛出错误,有时不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43947220/

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