Em português iterador, é um objeto que permite a um programador examinar uma coleção ou container. Vários tipos de iteradores são frequentemente fornecidos através de uma interface de container. Apesar da interface e semântica de um determinado iterador serem fixas, iteradores são frequentemente implementados em termos de estruturas subjacentes a uma implementação de container e são muitas vezes ligados intimamente ao container para permitir a semântica operacional do iterador.
Observe que um iterador percorre e também dá acesso aos elementos de dados em um container, mas não realiza iteração (isto é, não sem alguma liberdade significativa tomada com este conceito ou com uso trivial da terminologia). Um iterador tem um comportamento semelhante a um cursor de banco de dados. Iteradores datam da linguagem de programação CLU de 1974.
Exemplo:
Neste exemplo escrevemos iteradores que navegam por um objeto javascript e iteram suas propriedades e os conteúdos de cada propriedade, também uma função que itera valores usando a clássica instrução next.
Html / JavaScript
<!DOCTYPE html> <html> <head> <title>Desenvolvimento Aberto</title> </head> <body> <h2>Desenvolvimento Aberto</h2> <h3>Javascript Orientado a Objeto - Iteradores</h3> <h4>JavaScript</h4> <br> <pre> <script> document.writeln("Iteradores: navega pelas propriedades\n"); // Cria propriedades var propriedade; var conteudo =""; // Cria objeto var objeto = { propriedade1:1, propriedade2:2, propriedade3:3 }; // Itera propriedades for (propriedade in objeto) document.writeln(propriedade); // itera objetos document.writeln("\nIteradores: navega pelos valores das propriedades\n"); for (var i in objeto) { conteudo = objeto[i] document.writeln(conteudo); } document.writeln("\nIteradores: proximo e anterior"); // Função cria iterador next function contador(valor) { var iterador = valor; return { next: function() { return iterador = iterador + 1; }} } // verifica iterador var numeros = contador(10); document.writeln("\nIteradores: numero = 10"); document.writeln("Iteradores: proximo = " + numeros.next()); </script> </pre> </body> </html>