JavaScript · Avançado · Inglês · Técnico
Symbol.iterator
Símbolo conhecido que nomeia o método que devolve o iterador de um objeto. Quem o implementa se torna iterável e funciona com for...of, spread e destructuring.
Onde usar
Implementado em coleções próprias, geralmente como um generator. Em code review, marca a diferença entre objetos que podem ser espalhados com ... e os que não podem.
Em código
class Fila {
itens = [1, 2, 3];
*[Symbol.iterator]() {
yield* this.itens;
}
}
console.log([...new Fila()]); // [1, 2, 3]Exemplos
Add a Symbol.iterator so the class works with for of.
Adicione um Symbol.iterator para a classe funcionar com for of.
A plain object has no Symbol.iterator, so spread fails.
Um objeto comum não tem Symbol.iterator, então o spread falha.
Cuidado
Tentar usar for...of em um objeto literal sem esse método, o que lança TypeError.