Kein Standard. Das veraltete Iterator-Protokoll war ein SpiderMonkey-spezifisches Feature, welches in Firefox 58 entfernt wurde. Als Alternative werden for..of Schleifen und das iterator protocol empfohlen.

Das veraltete Iterator-Protokoll

Vor Version 26 implementierte Firefox ein anderes Iterator-Protokoll, welches dem ES2015 Iterator protocol Standard entspricht.

Ein Objekt ist ein veralteter Iterator, wenn es eine next()  Methode mit den folgenden Semantiken implementiert, welches zum Ende der Iteration StopIteration wirft.

Property Value
next Eine Funktion ohne Argumente, welche einen Wert zurückgibt.

Unterschied zwischen dem veralteten und dem ES2015 Iterator-Protokoll

  • Der Wert wurde direkt von der next Methode zurückgegeben, statt der Wert der value Eigenschaft eines Platzhalter-Objekts zu sein.
  • Das Ende der Iteration wurde durch das Werfen eines StopIteration Objekts ausgedrückt.

Einfaches Beispiel mit dem alten Protokoll

function kreiereIterator(array){
    var nextIndex = 0;

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

var it = kreiereIterator(['yo', 'ya']);

console.log(it.next()); // 'yo'
console.log(it.next()); // 'ya'
try{
    console.log(it.next());
}
catch(e){
    if(e instanceof StopIteration){
         // Iteration beendet.
    }
}

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Mitwirkende an dieser Seite: mdnwebdocs-bot, ctexxx
Zuletzt aktualisiert von: mdnwebdocs-bot,