语法错误:getter 函数必须没有参数
当 getter 被声明且参数列表不为空时,就会出现 JavaScript 异常 "getter 函数必须没有参数"。
信息
SyntaxError: Getter must not have any formal parameters. (V8-based) SyntaxError: getter functions must have no arguments (Firefox) SyntaxError: Unexpected identifier 'x'. getter functions must have no parameters. (Safari)
错误类型
出了什么问题?
get
属性语法看起来像一个函数,但它更严格,并非所有函数语法都是允许的。 getter 总是被调用时没有参数,因此用任何参数来定义它很可能是错误的。
请注意,此错误仅适用于使用 get
语法定义的属性 getter。 如果你使用 Object.defineProperty()
等方法来定义 getter,则 getter 将被定义为一个普通函数,尽管如果 getter 预期有任何参数,它很可能仍然是错误的,因为它将被调用时没有任何参数。
示例
无效情况
js
const obj = {
get value(type) {
return type === "string" ? String(Math.random()) : Math.random();
},
};
有效情况
js
// Remove the parameter
const obj = {
get value() {
return Math.random();
},
};
// Use a normal method, if you need a parameter
const obj = {
getValue(type) {
return type === "string" ? String(Math.random()) : Math.random();
},
};