Это экспериментальная технология, часть предложения Harmony (ECMAScript 6).
Поскольку спецификация этой технологии ещё не стабилизировалась, проверьте таблицу совместимости её использования в различных браузерах. Также обратите внимание, что синтаксис и поведение экспериментальной технологии могут быть изменены в будущих версиях браузеров в соответствии с изменениями в спецификации.
Сводка
Начальное значение свойства @@iterator
является тем же самым функциональным объектом, что и начальное значение, возвращаемое методом values()
.
Синтаксис
arr[Symbol.iterator]()
Примеры
Пример: итерация посредством цикла for...of
var arr = ['w', 'y', 'k', 'o', 'p']; // ваш браузер должен поддерживать цикл for..of // и переменные с областью видимости let в циклах for for (let letter of arr) { console.log(letter); }
Пример: альтернативный способ итерации
var arr = ['w', 'y', 'k', 'o', 'p']; var eArr = arr[Symbol.iterator](); console.log(eArr.next().value); // w console.log(eArr.next().value); // y console.log(eArr.next().value); // k console.log(eArr.next().value); // o console.log(eArr.next().value); // p
Спецификации
Спецификация | Статус | Комментарии |
---|---|---|
ECMAScript 6 (ECMA-262) Определение 'Array.prototype[@@iterator]()' в этой спецификации. |
Кандидат в рекомендации | Изначальное определение. |
Совместимость с браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | 38 |
17 (17) (.iterator) 27 (27) (["@@iterator"]) 36 (36) ([Symbol.iterator]) |
Нет | 25 | Нет |
Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | Нет | Нет |
17.0 (17) (.iterator) 27.0 (27) (["@@iterator"]) 36.0 (36) ([Symbol.iterator]) |
Нет | 25 | Нет |
Примечания по Gecko
- С Gecko 17 (Firefox 17 / Thunderbird 17 / SeaMonkey 2.14) по Gecko 26 (Firefox 26 / Thunderbird 26 / SeaMonkey 2.23 / Firefox OS 1.2) вместо символа
@@iterator
использовалось свойствоiterator
(ошибка 907077), а с Gecko 27 по Gecko 35 — строка-заменитель"@@iterator"
(ошибка 918828).