1. Introduction du générateur
Le générateur est un nouveau type de données introduit par ES6. Cela ressemble à une fonction. En plus d'utiliser le retour, le rendement peut être renvoyé plusieurs fois.
le générateur est défini par la fonction *, (note * numéro),
2. Exemple
Les fonctions ne peuvent pas enregistrer l'état et parfois des variables globales sont nécessaires pour enregistrer les nombres;
2.1
'utiliser strict'; fonction next_id () {var id = 1; while (id <100) {rendement id; id ++;} return id;} // test: varx, pass = true, g = next_id (); for (x = 1; x <100; x ++) {if (g.next (). {alert ('test passé!');}2.2 Un itérateur de boucle infinie
Fonction * idMaker () {var index = 0; while (true) Rende Index ++;} var gen = idMaker (); // "générateur {}" console.log (gen.next (). Valeur); // 0Console.log (gen.next (). Valeur); // 1Console.log (gen.next (). Valeur); // 22.3Generator.prototype.Next ()
Lorsque l'itération se termine, générateur.next (). Done === true, avant de terminer === false
fonction * gen () {rendement 1; rendement 2; rendement 3;} var g = gen (); // "générateur {}" g.next (); // "Object {valeur: 1, fait: false}" g.next (); // "Object {valeur: 2, fait: false}" g.next (); // "Object {valeur: 3, fait: false}" g.next (); // "Object {Value: Undefined, fait: true}"2.4 générateur.prototype.return ();
La méthode de retour renvoie la valeur du paramètre donné et termine l'itérateur
exemple
fonction * gen () {rendement 1; rendement 2; rendement 3;} var g = gen (); g.next (); // {valeur: 1, fait: false} g.return ("foo"); // {valeur: "foo", fait: true} g.next (); // {valeur: non définis, fait: true}Notez que si la valeur de fait est vraie, puis le retour d'appel, la valeur renvoyée ne sera pas non plus définie.
Fonction * gen () {rendement 1;} var g = gen (); console.log (g.next ()); // {valeur: 1, fait: false} console.log (g.next ()); // {valeur: non défini, fait: true} console.log (g.retrurn (1)); // {valeur: non définis, fait: true}2.5 générateur.prototype.throw ()
La méthode thorw () reprend l'exécution de l'itérateur en jetant une exception dans l'itérateur;
Renvoie un objet objet avec deux attributs: valeur et fait
Fonction * gen () {while (true) {try {rendement 42;} catch (e) {console.log ("error satch!");}}} var g = gen (); var a = g.next (); // {valeur: 42, fait: false} var b = g.throw (new ("quelque chose est mal tourné"); // "Catch d'erreur!" } console.log (a); console.log (b.value + "::" + b.done);Ce qui précède est une explication détaillée du type de données du générateur ES6 dans JavaScript introduit par l'éditeur. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!