SyntaxError: Getter-Funktionen dürfen keine Argumente haben
Die JavaScript-Ausnahme "getter functions must have no arguments" tritt auf, wenn ein Getter deklariert wird und die Parameterliste nicht leer ist.
Nachricht
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 aber strikter und nicht alle Funktionssyntax ist erlaubt. Ein Getter wird immer ohne Argumente aufgerufen, daher ist es wahrscheinlich ein Fehler, ihn mit Parametern 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, obwohl es wahrscheinlich immer noch ein Fehler ist, wenn der Getter Argumente erwartet, da er ohne solche aufgerufen wird.
Beispiele
Ungültige Fälle
const obj = {
get value(type) {
return type === "string" ? String(Math.random()) : Math.random();
},
};
Gültige Fälle
// 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();
},
};