arguments[Symbol.iterator]()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die [Symbol.iterator]()-Methode von arguments-Objekten implementiert das iterable Protokoll und ermöglicht es arguments-Objekten, von den meisten Syntaxen, die Iterables erwarten, konsumiert zu werden, wie etwa der Spread-Syntax und for...of-Schleifen. Sie gibt ein Array-Iterator-Objekt zurück, das den Wert jedes Index im arguments-Objekt liefert.

Der Anfangswert dieser Eigenschaft ist dasselbe Funktionsobjekt wie der Anfangswert der Array.prototype.values-Eigenschaft (und auch dasselbe wie Array.prototype[Symbol.iterator]()).

Syntax

js
arguments[Symbol.iterator]()

Parameter

Keine.

Rückgabewert

Derselbe Rückgabewert wie Array.prototype.values(): ein neues iterables Iterator-Objekt, das den Wert jedes Index im arguments-Objekt liefert.

Beispiele

Iteration mittels for...of-Schleife

Beachten Sie, dass Sie diese Methode selten direkt aufrufen müssen. Die Existenz der [Symbol.iterator]()-Methode macht arguments-Objekte iterierbar, und iterierende Syntaxen wie die for...of-Schleife rufen diese Methode automatisch auf, um den Iterator zum Durchlaufen zu erhalten.

js
function f() {
  for (const letter of arguments) {
    console.log(letter);
  }
}
f("w", "y", "k", "o", "p");

Manuelles Durchgehen des Iterators

Sie können immer noch die next()-Methode des zurückgegebenen Iterator-Objekts manuell aufrufen, um maximale Kontrolle über den Iterationsprozess zu erhalten.

js
function f() {
  const argsIter = arguments[Symbol.iterator]();
  console.log(argsIter.next().value); // w
  console.log(argsIter.next().value); // y
  console.log(argsIter.next().value); // k
  console.log(argsIter.next().value); // o
  console.log(argsIter.next().value); // p
}
f("w", "y", "k", "o", "p");

Spezifikationen

Specification
ECMAScript Language Specification
# sec-createunmappedargumentsobject
ECMAScript Language Specification
# sec-createmappedargumentsobject

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch