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 :
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
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()
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
- La déclaration
function* - L'expression
function* - Le constructeur
Function() - Le guide des itérateurs et générateurs
- Les fonctions