Iterator Protocol
JavaScript 🟡 MidDefinition
Convention definissant comment un objet produit une sequence de valeurs. Un objet est iterable s'il a une methode [Symbol.iterator]() retournant un iterateur avec next() -> {value, done}.
Analogie
Un distributeur de tickets : chaque appel a next() te donne le ticket suivant, et done te dit quand il n'y en a plus.
Exemple de code
const range = {
from: 1, to: 3,
[Symbol.iterator]() {
let n = this.from;
return { next: () => n <= this.to
? { value: n++, done: false }
: { done: true } };
}
};
for (const n of range) console.log(n);
Cas d'usage
Rendre des objets custom utilisables dans for...of, spread, et destructuring.