SyntaxError: функции-геттеры не должны иметь аргументов
Исключение JavaScript "функции-геттеры не должны иметь аргументов" возникает при объявлении геттера с непустым списком параметров.
Сообщение
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 выглядит как функция, но он более строгий, и допускается не весь синтаксис функций. Геттер всегда вызывается без аргументов, поэтому определение его с каким-либо параметром, вероятно, является ошибкой.
Обратите внимание, что эта ошибка применяется только к геттерам свойств, использующим синтаксис get. Если вы определяете геттер с помощью Object.defineProperty() и т. д., геттер определяется как обычная функция, хотя это, вероятно, все равно будет ошибкой, если геттер ожидает каких-либо аргументов, поскольку он будет вызван без них.
Примеры
Недопустимые случаи
const obj = {
get value(type) {
return type === "string" ? String(Math.random()) : Math.random();
},
};
Допустимые случаи
// 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();
},
};
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_no_arguments