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® 2025 Language Specification
# sec-createunmappedargumentsobject
ECMAScript® 2025 Language Specification
# sec-createmappedargumentsobject

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
[Symbol.iterator]

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch