Symbol.iterator
Symbol.iterator - специальный встроенный
Например, у нас есть объект
- Когда цикл
- Дальше
- Когда
- Результат вызова
#перебираемые_объекты #symbol_iterator
Symbol.iterator - специальный встроенный
Symbol
, который позволяет сделать объект итерируемым.Например, у нас есть объект
range
, который представляет собой диапазон чисел. Чтобы сделать range
итерируемым (и позволить for..of
работать с ним), нам нужно добавить в объект метод с именем Symbol.iterator
.- Когда цикл
for..of
запускается, он вызывает этот метод один раз (или выдаёт ошибку, если метод не найден). Этот метод должен вернуть итератор – объект с методом next
.- Дальше
for..of
работает только с этим возвращённым объектом.- Когда
for..of
хочет получить следующее значение, он вызывает метод next()
этого объекта.- Результат вызова
next()
должен иметь вид {done: Boolean, value: any}
, где done=true
означает, что итерация закончена, в противном случае value
содержит очередное значение.#перебираемые_объекты #symbol_iterator
👍5