Mozilla's getting a new look. What do you think? https://mzl.la/brandsurvey

Le protocole itérateur historique

Non-standard. Ce protocole historique est une fonctionnalité spécifique à SpiderMonkey et sera supprimé plus tard. Pour utiliser des itérations par la suite, veuillez utiliser des boucles for..of ainsi que le protocole itérateur.

Le protocole itérateur obsolète, spécifique à Firefox

Avant la version 26, Firefox implémentait un autre protocole d'itération semblable à celui défini par ES2015.

Un objet est un itérateur historique lorsqu'il implémente une méthode next() avec la sémantique suivante et lorsqu'il renvoie une exception StopIteration à la fin de l'itération :

Propriété Valeur
next

Une fonction sans argument qui renvoie une valeur.

Les différences entre le protocole historique et celui d'ES2015

  • La valeur était directement renvoyée par la fonction next alors qu'avec le protocole ES2015, elle est contenue dans une propriété value
  • La fin de l'itération était signalée par un objet StopIteration.

Un exemple simple utilisant l'ancien protocole

Exemple

function créerItérateur(tableau){
    var nextIndex = 0;

    return {
       next: function(){
           if(nextIndex < tableau.length){
               return tableau[nextIndex++];
           else
               throw new StopIteration();
       }
    }
}

var it = créerItérateur(['yo', 'ya']);

console.log(it.next()); // 'yo'
console.log(it.next()); // 'ya'
try{
    console.log(it.next());
}
catch(e){
    if(e instanceof StopIteration){
         // fin de l'itération
    }
}

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,