Spec-Zone.ru › JavaScript

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)

Тип ошибки

SyntaxError

Что пошло не так?

Синтаксис свойства 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();
  },
};

См. также

  • Функции
  • get

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API