1. Generator EINLEITUNG
Generator ist ein neuer Datentyp, der von ES6 eingeführt wird. Es sieht aus wie eine Funktion. Zusätzlich zur Verwendung der Rückgabe kann die Ertrag mehrmals zurückgegeben werden.
Generator wird durch Funktion *, (Hinweis * Nummer) definiert.
2. Beispiel
Funktionen können keinen Zustand speichern, und manchmal sind globale Variablen erforderlich, um Zahlen zu sparen.
2.1
'strict'; function next_id () {var id = 1; while (id <100) {relief id; id ++;} return id;} // test: varx, pass = true, g = next_id (); für (x = 1; x <100; x ++) {if (g.next (). Wert (value; {alert ('Test bestanden!');}2.2 ein unendlicher Schleifen Iterator
Funktion* idMaker () {var index = 0; while (true) rendite Index ++;} var gen = idMaker (); // "Generator {}" console.log (gen.next (). Value); // 0console.log (gen.next (). Value); // 1console.log (Gen.Next (). Wert); // 22.3Generator.Prototype.Next ())
Wenn die Iteration endet, Generator.Next (). Done === true, bevor endet === false
Funktion* gen () {Ertrag 1; Ausbeute 2; Ausbeute 3;} var g = gen (); // "Generator {}" g.next (); // "Objekt {Wert: 1, fertig: false}" g.next (); // "Objekt {Wert: 2, fertig: false}" g.next (); // "Objekt {Wert: 3, fertig: false}" g.next (); // "Objekt {Wert: undefiniert, fertig: true}"2.4 Generator.Prototype.Return ();
Die Rückgabemethode gibt den angegebenen Parameterwert zurück und beendet den Iterator
Beispiel
Funktion* gen () {Ertrag 1; Ausbeute 2; Ertrag 3;} var g = gen (); g.Next (); // {Wert: 1, fertig: false} g.return ("foo"); // {value: "foo", fertig: true} g.next (); // {value: undefiniert, fertig: true}Beachten Sie, dass der zurückgegebene Wert ebenfalls undefiniert ist, wenn der Wert von Fertig und dann die Rückgabe aufrufen.
Funktion* gen () {relief 1;} var g = gen (); console.log (g.next ()); // {value: 1, erledigt: false} console.log (g.next ()); // {Wert: nicht definiert, erledigt: true} console.log (g.return (1)); // {value: undefiniert, fertig: true}2.5 Generator.Prototype.Throw ()
Die Thorw () -Methode erweckt die Ausführung des Iterators zurück, indem sie eine Ausnahme in den Iterator stellt.
Gibt ein Objektobjekt mit zwei Attributen zurück: Wert und ausgeführt
Funktion* gen () {while (true) {try {relief 42;} catch (e) {console.log ("Fehler catch!");}}} var g = gen (); var a = g.next (); // {value: 42, Done: False} var b = g. throw (new2) ("etwas fälschlicherweise"). } console.log (a); console.log (B.Value+"::"+b.done);Das obige ist eine detaillierte Erläuterung des ES6 -Generator -Datentyps in JavaScript, der vom Editor eingeführt wurde. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!