1. Introducción del generador
El generador es un nuevo tipo de datos introducido por ES6. Parece una función. Además de usar retorno, el rendimiento se puede devolver varias veces.
El generador se define por la función *, (nota * número),
2. Ejemplo
Las funciones no pueden guardar el estado, y a veces se necesitan variables globales para guardar números;
2.1
'use estrict'; function next_id () {var id = 1; while (id <100) {rindi id; id ++;} return id;} // test: varx, pass = true, g = next_id (); for (x = 1; x <100; x ++) {if (g.next (). valor! == x) {pass = false; alerta ('test fallado!') {alerta ('Prueba pasada!');}2.2 Un iterador de bucle infinito
function* idmaker () {var index = 0; while (true) rendimiento índice ++;} var gen = idmaker (); // "Generator {}" console.log (gen.next (). Valor); // 0console.log (gen.next (). Valor); // 1console.log (gen.next (). Valor); // 22.3Generator.prototype.next ()
Cuando termina la iteración, generador.next (). Done === True, antes de finalizar === Falso
función* gen () {rendimiento 1; rendimiento 2; rendimiento 3;} var g = gen (); // "Generador {}" G.Next (); // "objeto {valor: 1, hecho: falso}" g.next (); // "objeto {valor: 2, hecho: falso}" g.next (); // "objeto {valor: 3, hecho: falso}" g.next (); // "Object {valor: indefinido, hecho: verdadero}"2.4 generador.prototype.return ();
El método de retorno devuelve el valor del parámetro dado y finaliza el iterador
ejemplo
función* gen () {rendimiento 1; rendimiento 2; rendimiento 3;} var g = gen (); g.next (); // {valor: 1, hecho: falso} g.return ("foo"); // {valor: "foo", hecho: true} g.next (); // {valor: indefinido, hecho: verdadero}Tenga en cuenta que si el valor de Hets es verdadero, y luego la devolución de llamadas, el valor devuelto también estará indefinido.
function* gen () {rendimiento 1;} var g = gen (); console.log (g.next ()); // {valor: 1, hecho: falso} console.log (g.next ()); // {valor: indefinido, hecho: verdadero} console.log (g.rcreturn (1)); // {valor: indefinido, hecho: verdadero}2.5 generador.prototype.throw ()
El método Thorw () recupera la ejecución del iterador arrojando una excepción al iterador;
Devuelve un objeto de objeto con dos atributos: valor y hecho
function* gen () {while (true) {try {rendimiento 42;} catch (e) {console.log ("Error Catch!");}}} var g = gen (); var a = g.next (); // {valor: 42, ded: falso} var b = g.throw (nuevo error ("algo salió mal")); // " } console.log (a); console.log (B.Value+"::"+b.done);Lo anterior es una explicación detallada del tipo de datos del generador ES6 en JavaScript introducido por el editor. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!