arguments[Symbol.iterator]()
Базовый уровень Широко доступен
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна в браузерах с июля 2015 года.
Метод [Symbol.iterator]() объектов arguments реализует протокол итератора и позволяет большинству синтаксисов, ожидающих итерируемые объекты, таким как оператор расширения и циклы for...of, использовать объекты arguments. Он возвращает итератор массива, который выдает значение каждого индекса в объекте arguments.
Начальное значение этого свойства совпадает с начальным значением свойства Array.prototype.values (а также совпадает с Array.prototype[Symbol.iterator]()).
Синтаксис
arguments[Symbol.iterator]()
Параметры
Нет.
Возвращаемое значение
То же, что и возвращаемое значение Array.prototype.values(): новый итератор, который выдает значение каждого индекса в объекте arguments.
Примеры
Итерация с использованием цикла for...of
Обратите внимание, что вы редко нуждаетесь в вызове этого метода напрямую. Наличие метода [Symbol.iterator]() делает объекты arguments итерируемыми, и синтаксисы итерации, такие как цикл for...of, автоматически вызывают этот метод для получения итератора, по которому происходит перебор.
function f() {
for (const letter of arguments) {
console.log(letter);
}
}
f("w", "y", "k", "o", "p");
Ручное создание итератора
Вы по-прежнему можете вручную вызвать метод next() возвращаемого объекта итератора для достижения максимального контроля над процессом итерации.
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");
Спецификации
| Спецификация |
|---|
| Спецификация языка ECMAScript® 2027 # sec-createunmappedargumentsobject |
| Спецификация языка ECMAScript® 2027 # sec-createmappedargumentsobject |
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
@@iterator |
52 |
12 |
46 |
39 |
9 |
52 |
46 |
41 |
9 |
6.0 |
52 |
9 |
1.0.0 |
1.0 |
4.0.0 |
См. также
- Руководство по функциям
- Функции
argumentsArray.prototype.values()Symbol.iterator- Протоколы итерации
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/Symbol.iterator