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
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.
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.
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