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

AsyncGeneratorFunction.prototype.prototype

La propriété prototype de AsyncGeneratorFunction.prototype est partagée par toutes les fonctions génératrices asynchrones. Sa valeur est AsyncGenerator.prototype. Chaque fonction génératrice asynchrone créée avec la syntaxe async function* ou le constructeur AsyncGeneratorFunction() possède également sa propre propriété prototype, dont le prototype est AsyncGeneratorFunction.prototype.prototype. Lorsque la fonction génératrice asynchrone est appelée, sa propriété prototype devient le prototype de l'objet générateur asynchrone retourné.

Valeur

Il s'agit du même objet que AsyncGenerator.prototype. AsyncGeneratorFunction.prototype.prototype est le nom techniquement plus précis, mais AsyncGenerator.prototype correspond à l'intuition qu'il s'agit du prototype des objets générateurs asynchrones.

Attributs de AsyncGeneratorFunction.prototype.prototype
ÉcrivableNon
ÉnumérableNon
ConfigurableOui

La propriété prototype de chaque instance de AsyncGeneratorFunction est un objet vide sans propriétés, dont le prototype est AsyncGeneratorFunction.prototype.prototype. Elle possède les attributs de propriété suivants :

Attributs de AsyncGeneratorFunction.prototype.prototype
ÉcrivableOui
ÉnumérableNon
ConfigurableNon

Description

Une instance de fonction génératrice asynchrone possède deux propriétés prototype. La première est sa propre propriété prototype. La seconde est la propriété prototype de son prototype, qui est AsyncGeneratorFunction.prototype. (Rappelez-vous que chaque fonction génératrice asynchrone est une instance de AsyncGeneratorFunction, donc son prototype est AsyncGeneratorFunction.prototype.)

js
async function* genFunc() {}
const AsyncGeneratorFunctionPrototype = Object.getPrototypeOf(genFunc);
console.log(Object.hasOwn(genFunc, "prototype")); // true
console.log(Object.hasOwn(AsyncGeneratorFunctionPrototype, "prototype")); // true

Lorsqu'une fonction génératrice asynchrone est appelée, sa propriété prototype devient le prototype de l'objet générateur asynchrone retourné.

js
const gen = genFunc();
const proto = Object.getPrototypeOf;
console.log(proto(gen) === genFunc.prototype); // true
console.log(proto(proto(gen)) === AsyncGeneratorFunctionPrototype.prototype); // true

Le schéma suivant illustre la chaîne de prototypes d'une fonction génératrice asynchrone et de ses instances. Chaque flèche creuse indique une relation d'héritage (c'est-à-dire un lien de prototype), et chaque flèche pleine indique une relation de propriété. Notez qu'il n'existe aucun moyen d'accéder à genFunc depuis gen — ils n'ont qu'une relation via instanceof.

Diagramme d'héritage des générateurs asynchrones et des fonctions génératrices asynchrones

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-asyncgeneratorfunction-prototype-prototype
ECMAScript® 2026 Language Specification
# sec-asyncgeneratorfunction-instances-prototype

Voir aussi