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

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.

L'objet GeneratorFunction fournit des méthodes pour les fonctions génératrices. En JavaScript, chaque fonction génératrice est en réalité un objet GeneratorFunction.

Notez que GeneratorFunction n'est pas un objet global. Vous pouvez l'obtenir avec le code suivant :

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

GeneratorFunction est une sous-classe de Function.

Exemple interactif

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

const foo = new GeneratorFunction(`
  yield 'a';
  yield 'b';
  yield 'c';
`);

let str = "";
for (const val of foo()) {
  str += val;
}

console.log(str);
// Résultat attendu : "abc"

Constructeur

GeneratorFunction()

Crée un nouvel objet GeneratorFunction.

Propriétés d'instance

Hérite aussi des propriétés d'instance de son parent Function.

Ces propriétés sont définies sur GeneratorFunction.prototype et partagées par toutes les instances de GeneratorFunction.

GeneratorFunction.prototype.constructor

La fonction constructeur qui a créé l'objet d'instance. Pour les instances de GeneratorFunction, la valeur initiale est le constructeur GeneratorFunction.

GeneratorFunction.prototype.prototype

Toutes les fonctions génératrices partagent la même propriété prototype, qui est Generator.prototype. Chaque fonction génératrice créée avec la syntaxe function* ou le constructeur GeneratorFunction() possède aussi sa propre propriété prototype, dont le prototype est GeneratorFunction.prototype.prototype. Quand la fonction génératrice est appelée, sa propriété prototype devient le prototype de l'objet générateur retourné.

GeneratorFunction.prototype[Symbol.toStringTag]

La valeur initiale de la propriété [Symbol.toStringTag] est la chaîne de caractères "GeneratorFunction". Cette propriété est utilisée dans Object.prototype.toString().

Ces propriétés sont propres à chaque instance de GeneratorFunction.

prototype

Utilisée quand la fonction est utilisée comme constructeur avec l'opérateur new. Elle devient le prototype du nouvel objet.

Méthodes d'instance

Hérite des méthodes d'instance de son parent Function.

Spécifications

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

Compatibilité des navigateurs

Voir aussi