Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
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.
L'objet Generator est retourné par une fonction génératrice et il respecte à la fois le protocole itérable et le protocole itérateur.
Generator est une sous-classe de Iterator.
Il n'existe aucune entité JavaScript qui corresponde au constructeur Generator. Les instances de Generator doivent être retournées par des fonctions génératrices :
Il existe seulement un objet caché qui est l'objet prototype partagé par tous les objets créés par les fonctions génératrices. Cet objet est souvent présenté comme Generator.prototype pour lui donner l'apparence d'une classe, mais il devrait plus justement être appelé GeneratorFunction.prototype.prototype, car GeneratorFunction est une entité JavaScript réelle. Pour comprendre la chaîne de prototypes des instances de Generator, voir GeneratorFunction.prototype.prototype.
Ces propriétés sont définies sur Generator.prototype et partagées par toutes les instances de Generator.
Generator.prototype.constructorLa fonction constructeur qui a créé l'objet instance. Pour les instances de Generator, la valeur initiale est GeneratorFunction.prototype.
Note : Les objets Generator ne conservent pas de référence à la fonction génératrice qui les a créés.
La valeur initiale de la propriété [Symbol.toStringTag] est la chaîne de caractères "Generator". Cette propriété est utilisée dans Object.prototype.toString().
Hérite également des méthodes d'instance de son parent Iterator.
Generator.prototype.next()Retourne une valeur produite par l'expression yield.
Generator.prototype.return()Agit comme si une instruction return était insérée dans le corps du générateur à la position actuelle de suspension, ce qui termine le générateur et lui permet d'effectuer toute tâche de libération lorsqu'elle est combinée avec un bloc try...finally.
Generator.prototype.throw()Agit comme si une instruction throw était insérée dans le corps du générateur à la position actuelle de suspension, ce qui informe le générateur d'une condition d'erreur et lui permet de gérer l'erreur, ou d'effectuer une libération et de se clôturer.
| ECMAScript® 2027 Language Specification # sec-generator-objects |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 25 févr. 2026 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.