Documentación offline JavaScript main

GeneratorFunction() constructor

main Documentación oficial Licencia CC-BY-SA-2.5Descargado el 2026-08-02

En esta página

[!WARNING] The arguments passed to this constructor are dynamically parsed and executed as JavaScript. APIs like this are known as injection sinks, and are potentially a vector for cross-site-scripting (XSS) attacks.

You can mitigate this risk by always passing {{domxref("TrustedScript")}} objects instead of strings and enforcing trusted types.

See Security considerations in the Function() constructor reference for more information.

The GeneratorFunction() constructor creates {{jsxref("GeneratorFunction")}} objects.

Note that GeneratorFunction is not a global object. It can be obtained with the following code:

const GeneratorFunction = function* () {}.constructor;

The GeneratorFunction() constructor is not intended to be used directly, and all caveats mentioned in the {{jsxref("Function/Function", "Function()")}} description apply to GeneratorFunction().

Syntax#

new GeneratorFunction(functionBody)
new GeneratorFunction(arg1, functionBody)
new GeneratorFunction(arg1, arg2, functionBody)
new GeneratorFunction(arg1, arg2, /* …, */ argN, functionBody)

GeneratorFunction(functionBody)
GeneratorFunction(arg1, functionBody)
GeneratorFunction(arg1, arg2, functionBody)
GeneratorFunction(arg1, arg2, /* …, */ argN, functionBody)

[!NOTE] GeneratorFunction() can be called with or without new. Both create a new GeneratorFunction instance.

Parameters#

See {{jsxref("Function/Function", "Function()")}}.

Examples#

Note that these examples omit the use of trusted types for brevity. For code showing the recommended approach, see Using TrustedScript in eval().

Creating and using a GeneratorFunction() constructor#

const GeneratorFunction = function* () {}.constructor;
const g = new GeneratorFunction("a", "yield a * 2");
const iterator = g(10);
console.log(iterator.next().value); // 20

Specifications#

{{Specifications}}

Browser compatibility#

{{Compat}}

See also#