SobesLab логотип SobesLab

Ответ

Объект считается итерируемым, если он имеет специальный метод с ключом `Symbol.iterator`. Этот метод должен возвращать итератор – объект с методом `next()`, который при каждом вызове возвращает объект формата { value: ..., done: ... }. Пример: `obj[Symbol.iterator] = function() { return { next() { ... } } }`. `Symbol.iterator` – это встроенный символ, используемый JavaScript для определения поведения объекта в цикле for...of и других местах, ожидающих итератор (например, Spread-оператор ...). В стандартных структурах (Array, Map и т.д.) Symbol.iterator уже реализован. Таким образом, чтобы сделать свой класс или объект итерируемым, нужно определить в нём метод Symbol.iterator, и тогда его экземпляры можно перебрать через for...of.