Javascript语法错误:意外的标记';(';

Javascript语法错误:意外的标记';(';,javascript,class,setter,getter,Javascript,Class,Setter,Getter,在类中定义名为get或set的方法时,我遇到了一个奇怪的问题。例如,我定义类Mem如下: class Mem { constructor() { this.list=[] } get(index) { return this.list[index]; } set(index, value) { this.list[index] = value; } } 但是我得到了一个SyntaxError:U

在类中定义名为
get
set
的方法时,我遇到了一个奇怪的问题。例如,我定义类Mem如下:

class Mem {
    constructor() {
        this.list=[]
    }

    get(index) {
        return this.list[index];
    }

    set(index, value) {
        this.list[index] = value;
    }
}
但是我得到了一个
SyntaxError:Unexpected token'('

但是,当我将方法名更改为
geta
seta
时,类定义起作用,我没有得到语法错误

class Mem {
    constructor() {
        this.list=[]
    }

    geta(index) {
        return this.list[index];
    }

    seta(index, value) {
        this.list[index] = value;
    }
}

我检查了
get
set
在Javascript中不是限制性关键字,因此我不清楚自己做错了什么。

您与


无论您在什么环境下运行它,听起来都像是一个错误。在Chrome中复制和粘贴代码可以正常工作。只需检查一下,它就可以在Chrome上工作。似乎只有Safari才会出现此错误。您正在使用ES6技术(
class
)在仍然不完全支持它的浏览器上。请始终参考兼容性表。如果使用
[“get”]
而不是
get
,它是否有效?不正确。这是一种完全不同的语法。请尝试在控制台中运行它(我正在运行Chrome)。
var obj={get(){return hey';}};obj.get()
声明一个名为
get
set
@MikeC的函数是完全有效的。我必须同意这是一个特定的浏览器ES6兼容性缺陷。Nina说得对!这是ES6和typescript语法。
{get prop() { ... } }
{get [expression]() { ... } }