GeneratorFunction() Konstruktor
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2016 browserübergreifend verfügbar.
Warnung: Die an diesen Konstruktor übergebenen Argumente werden dynamisch als JavaScript geparst und ausgeführt. Solche APIs sind bekannt als Einschleusungs-Senken und sind potenziell ein Vektor für Cross-Site-Scripting (XSS) Angriffe.
Sie können dieses Risiko mindern, indem Sie stets TrustedScript Objekte anstelle von Zeichenfolgen übergeben und vertrauenswürdige Typen erzwingen.
Siehe Sicherheitsüberlegungen im Function() Konstruktorreferenz für mehr Informationen.
Der GeneratorFunction() Konstruktor erstellt GeneratorFunction Objekte.
Beachten Sie, dass GeneratorFunction kein globales Objekt ist. Es kann mit dem folgenden Code erhalten werden:
const GeneratorFunction = function* () {}.constructor;
Der GeneratorFunction() Konstruktor ist nicht zur direkten Verwendung gedacht, und alle im Function() genannten Einschränkungen gelten auch für 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)
Hinweis:
GeneratorFunction() kann mit oder ohne new aufgerufen werden. Beide erzeugen eine neue GeneratorFunction Instanz.
Parameter
Siehe Function().
Beispiele
Beachten Sie, dass diese Beispiele aus Gründen der Kürze die Verwendung von vertrauenswürdigen Typen weglassen. Für Code, der den empfohlenen Ansatz zeigt, siehe Verwendung von TrustedScript in eval().
Erstellen und Verwenden eines GeneratorFunction() Konstruktors
const GeneratorFunction = function* () {}.constructor;
const g = new GeneratorFunction("a", "yield a * 2");
const iterator = g(10);
console.log(iterator.next().value); // 20
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-generatorfunction-constructor> |