1. Présentation
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: var x, pass = true, g = next_id (); for (x = 1; x <100; x ++) {if (g.next (). valeur! == x) {pass = false; alert («test a échoué!»); casser; }} if (pass) {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 Catch!"); }}} var g = gen (); var a = g.next (); // {valeur: 42, fait: false} var b = g.throw (nouvelle erreur ("quelque chose s'est mal passé")); // "error catch!" // {value: 42, fait: false} console.log (a); console.log (B.Value + "::" + B.Done);La compréhension approfondie de l'article ci-dessus du type de données du générateur JS est tout le contenu que j'ai partagé avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.