Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
SyntaxError: arguments ist in Feldern nicht gültig
Die JavaScript-Ausnahme "SyntaxError: arguments ist in Feldern nicht gültig" tritt auf, wenn derarguments-Bezeichner in einem Klassenfeld-Initializer oder in einem statischen Initialisierungsblock außerhalb einer nicht-Pfeilfunktion gelesen wird.
In diesem Artikel
Nachricht
SyntaxError: 'arguments' is not allowed in class field initializer or static initialization block (V8-based)SyntaxError: arguments is not valid in fields (Firefox)SyntaxError: Unexpected identifier 'arguments'. Cannot reference 'arguments' in class field initializer. (Safari)
Fehlertyp
SyntaxErrorWas ist schiefgelaufen?
Ein Klassenfeld-Initialisierungs-Ausdruck oder ein statischer Klassen-Initialisierungsblock hatarguments nicht in seinem Gültigkeitsbereich. Der Versuch, darauf zuzugreifen, führt zu einem Syntaxfehler.
- Dies gilt auch, wenn
argumentsin einem übergeordneten Gültigkeitsbereich gebunden ist (zum Beispiel, wenn die Klasse in einer nicht-Pfeilfunktion geschachtelt ist). - Eine innerhalb dieses Gültigkeitsbereichs deklarierte nicht-Pfeilfunktion bindet weiterhin ihre eigenen
argumentsund liest sie normal.
Beispiele
js
function makeOne() { class C { args = { ...arguments }; // SyntaxError: arguments is not valid in fields } return new C();}js
let CArgs;class C { static { CArgs = arguments; // SyntaxError: arguments is not valid in fields }}js
class C { args = {}; constructor() { this.args = arguments; // You can use arguments in constructors } myMethod() { this.args = arguments; // You can also use it in methods }}js
function makeOne() { const _arguments = arguments; class C { args = { ..._arguments }; // Only the identifier is forbidden } return new C();}