Thanks to visit codestin.com
Credit goes to developer.mozilla.org

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

SyntaxError: arguments ist in Feldern nicht gültig

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

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

SyntaxError

Was ist schiefgelaufen?

Ein Klassenfeld-Initialisierungs-Ausdruck oder ein statischer Klassen-Initialisierungsblock hat arguments nicht in seinem Gültigkeitsbereich. Der Versuch, darauf zuzugreifen, führt zu einem Syntaxfehler.

  • Dies gilt auch, wenn arguments in 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 arguments und 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();
}

Siehe auch