Prechádza prvky kolekcie bez toho, aby odhalil jej vnútornú stavbu.
class ZoznamIterator { constructor(prvky) { this.prvky = prvky; this.pozicia = 0; } maDalsi() { return this.pozicia < this.prvky.length; } dalsi() { const prvok = this.prvky[this.pozicia]; this.pozicia += 1; return prvok; }} class Zoznam { #prvky = []; pridaj(prvok) { this.#prvky.push(prvok); } iterator() { return new ZoznamIterator(this.#prvky); }} const it = zoznam.iterator();while (it.maDalsi()) { spracuj(it.dalsi()); // klient nevie, čo je vnútri zoznamu}