Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Constructeur GeneratorFunction()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2016.

Attention : Les arguments passés à ce constructeur sont analysés dynamiquement et exécutés comme du JavaScript. Les API de ce type sont connues sous le nom de puits d'injection et peuvent constituer un vecteur potentiel d'attaques par injection de scripts intersites (XSS).

Vous pouvez atténuer ce risque en passant systématiquement des objets TrustedScript au lieu de chaînes de caractères et en appliquant les types de confiance.

Voir Considérations de sécurité dans la référence du constructeur Function() pour plus d'informations.

Le constructeur GeneratorFunction() crée des objets GeneratorFunction.

Notez que GeneratorFunction n'est pas un objet global. Il peut être obtenu avec le code suivant :

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

Le constructeur GeneratorFunction() n'est pas destiné à être utilisé directement, et toutes les mises en garde mentionnées dans la description de Function() s'appliquent à GeneratorFunction().

Syntaxe

js
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() peut être appelé avec ou sans new. Les deux créent une nouvelle instance de GeneratorFunction.

Paramètres

Voir Function().

Exemples

Notez que ces exemples omettent l'utilisation de types de confiance pour des raisons de concision. Pour un code montrant l'approche recommandée, voir Utilisation de TrustedScript dans eval().

Créer et utiliser un générateur avec le constructeur GeneratorFunction()

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

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-generatorfunction-constructor

Compatibilité des navigateurs

Voir aussi