ExpertiDict

JavaScript · Avançado · Inglês · Técnico

Symbol.iterator

/ˈsɪmbəl ˈɪtəɹeɪtɚ/substantivo

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.

Veja também

Todos os termos de JavaScript