SyntaxError: arguments ist in Feldern nicht gültig

Die JavaScript-Ausnahme "SyntaxError: arguments ist in Feldern nicht gültig" tritt auf, wenn der arguments Identifikator in einem Klassenfeld-Initializer oder in einem statischen Initialisierungsblock außerhalb einer nicht-Pfeilfunktion gelesen wird.

Meldung

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

Was ging schief?

Ein Klassenfeld-Initialisierungs-Ausdruck oder ein Klassenstatischer Initialisierungsblock hat arguments nicht in seinem Gültigkeitsbereich. Der Versuch, darauf zuzugreifen, ist ein Syntaxfehler.

  • Dies gilt selbst dann, wenn arguments in einem übergeordneten Gültigkeitsbereich gebunden ist (z. B. wenn die Klasse in einer nicht-Pfeilfunktion verschachtelt ist).
  • Eine nicht-Pfeilfunktion, die innerhalb dieses Gültigkeitsbereichs deklariert ist, wird dennoch ihr eigenes arguments binden und es normal lesen.

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

Siehe auch