SyntaxError: Getter-Funktionen dürfen keine Argumente haben

Der JavaScript-Ausnahmefehler "getter functions must have no arguments" tritt auf, wenn ein Getter deklariert wird und die Parameterliste nicht leer ist.

Meldung

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)

Fehlertyp

Was ist schiefgelaufen?

Die get-Eigenschaftssyntax sieht aus wie eine Funktion, ist jedoch strenger, und es ist nicht die gesamte Funktionssyntax erlaubt. Ein Getter wird immer ohne Argumente aufgerufen, daher ist es wahrscheinlich ein Fehler, ihn mit einem beliebigen Parameter zu definieren.

Beachten Sie, dass dieser Fehler nur für Eigenschafts-Getter gilt, die die get-Syntax verwenden. Wenn Sie den Getter mit Object.defineProperty() usw. definieren, wird der Getter als normale Funktion definiert. Es ist jedoch wahrscheinlich immer noch ein Fehler, wenn der Getter Argumente erwartet, da er ohne Argumente aufgerufen wird.

Beispiele

Ungültige Fälle

js
const obj = {
  get value(type) {
    return type === "string" ? String(Math.random()) : Math.random();
  },
};

Gültige Fälle

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();
  },
};

Siehe auch