| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Generator | [Back] [Original] |
Get to know MDN better
Esta pgina foi traduzida do ingls pela comunidade. Saiba mais e junte-se comunidade MDN Web Docs.
This feature is well established and works across many devices and browser versions. Its been available across browsers since setembro de 2016.
O objeto Generator retornado por generator function e conforme iterable protocol e o iterator protocol.
function* gen() {
yield 1;
yield 2;
yield 3;
}
var g = gen(); // "Generator { }"
Generator.prototype.next()Retorna o valor fornecido pela expresso yield.
Generator.prototype.return()Retorna o valor fornecido a finaliza o generator.
Generator.prototype.throw()Lana um erro no generator.
function* idMaker() {
var index = 0;
while (true) yield index++;
}
var gen = idMaker(); // "Generator { }"
console.log(gen.next().value); // 0
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
// ...
Firefox (SpiderMonkey) tambm implementa a verso anterior do generator em JavaScript 1.7, onde o asterisco (*) na declarao da funo no era necessrio (somente era necessrio usar a palavra reservada yield no corpo da funo). Contudo, legacy generators esto obsoletos. No os use, eles sero removidos (Erro do Firefox 1083482).
Generator.prototype.next() Retorna o valor fornecido pela expresso yield. Isto corresponde ao next() do ES6.
Generator.prototype.close() Fecha o generator, ento quando chamar next() um erro StopIteration ser lanado. Isto corresponde ao mtodo return() do ES6.
Generator.prototype.send() Usado para enviar um valor para o generator. Este valor retordo pela expresso yield, e retorna o valor fornecido pelo pelo next yield. send(x) corresponde ao next(x) do ES6.
Generator.prototype.throw() Lana um erro no generator. Isto corresponde ao mtodo throw() do ES6.
function* fibonacci() {
var a = yield 1;
yield a * 2;
}
var it = fibonacci();
console.log(it); // "Generator { }"
console.log(it.next()); // 1
console.log(it.send(10)); // 20
console.log(it.close()); // undefined
console.log(it.next()); // throws StopIteration (Como o generator est fechado)
| Specification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-generator-objects |
StopIterationfunctionfunction expressionFunctionfunction*function* expressionGeneratorFunctionThis page was last modified on 17 de jul. de 2026 by MDN contributors.
GeneratorIteratorObject/FunctionObject.prototype.__defineGetter__()Object.prototype.__defineSetter__()Object.prototype.__lookupGetter__()Object.prototype.__lookupSetter__()Object.prototype.hasOwnProperty()Object.prototype.isPrototypeOf()Object.prototype.propertyIsEnumerable()Object.prototype.toLocaleString()Object.prototype.toString()Object.prototype.valueOf()Your blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |