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]() { ... } }