1. Обзор
Генератор - это новый тип данных, введенный ES6. Это выглядит как функция. В дополнение к использованию возврата, доход может быть возвращен несколько раз.
генератор определяется функцией *, (примечание * номер),
2. Пример
Функции не могут сохранить состояние, и иногда для сохранения чисел необходимы глобальные переменные;
2.1
'Использовать строгое'; function next_id () {var id = 1; while (id <100) {идентификатор доходности; id ++; } return id;} // test: var x, pass = true, g = next_id (); for (x = 1; x <100; x ++) {if (g.next (). value! == x) {pass = false; оповещение («Тест не удался!»); перерыв; }} if (pass) {alert ('Тест прошел!');}2.2 Итератор бесконечной петли
function* idmaker () {var index = 0; while (true) index index ++;} var gen = idmaker (); // «Генератор {}» console.log (gen.next (). Value); // 0console.log (gen.next (). Value); // 1 -anconsole.log (gen.next (). Value); // 22.3generator.prototype.next ()
Когда итерация заканчивается, generator.next (). Dode === true, перед окончанием === false
Функция* Gen () {itlid 1; урожай 2; выход 3;} var g = gen (); // "Генератор {}" g.next (); // "Object {value: 1, Dode: false}" g.next (); // "Object {value: 2, dode: false}" g.next (); // "object {value: 3, dode: false}" g.next (); // "Object {value: undefined, dode: true}"2.4 Generator.prototype.return ();
Метод возврата возвращает заданное значение параметра и заканчивает итератор
пример
Функция* Gen () {itlid 1; урожай 2; выход 3;} var g = gen (); g.next (); // {value: 1, dode: false} g.return ("foo"); // {value: "foo", Dode: true} g.next (); // {value: undefined, dode: true}Обратите внимание, что если значение сделано верно, а затем вызов возврата, возвращаемое значение также будет не определен.
function* gen () {witch 1;} var g = gen (); console.log (g.next ()); // {value: 1, dofe: false} console.log (g.next ()); // {value: undefined, dose: true} console.log (g.return (1)); // {value: undefined, dode: true}2.5 Generator.prototype.Throw ()
Метод Thorw () восстанавливает выполнение итератора, бросая исключение в итератор;
Возвращает объект объекта с двумя атрибутами: значение и сделано
function* gen () {while (true) {try {wilent 42; } catch (e) {console.log ("ошибка Catch!"); }}} var g = gen (); var a = g.next (); // {value: 42, dode: false} var b = g.throw (новая ошибка ("что -то пошло не так")); // "Улов ошибки!" // {значение: 42, Dode: false} Консоль.Приведенная выше статья глубокое понимание типа данных генератора JS-это весь контент, которым я поделился с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.