★ wanayoo — archive 1999 https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/GeneratorFunctionNouvelle recherche | Portail wanayoo
mozilla
Vos résultats de recherche

    GeneratorFunction

    Résumé

    Le constructeur GeneratorFunction permet de créer un nouvel objet qui est une fonction génératrice. En JavaScript, chaque générateur (ou fonction génératrice) est un objet GeneratorFunction.

    L'objet GeneratorFunction n'est pas un objet global. Il peut être obtenu en exécutant le code suivant :

    Object.getPrototypeOf(function*(){}).constructor
    

    Syntaxe

    new GeneratorFunction ([arg1[, arg2[, ...argN]],] corpsFonction)

    Paramètres

    arg1, arg2, ... argN
    Les noms à utiliser pour les arguments formellement déclarés. Chacun doit être une chaîne de caractères correspondant à un identifiant JavaScript valide ou une liste de telles chaînes séparées par des virgules. Par exemple, on peut avoir "x", "maValeur", ou "a,b".
    corpsFonction
    Une chaîne qui contient les instructions JavaScript qui composent la définition de la fonction.

    Description

    Les fonctions génératrices créées avec le constructeur GeneratorFunction sont analysés lorsque la fonction est crée. Cela est moins efficace que de déclarer un générateur avec une expression function* puis de l'appeler car ces fonctions sont analysées avec le reste du code (ce qui permet au moteur JavaScript d'effectuer certaines optimisations).

    Tous les arguments passés à la fonction sont traités par la suite avec les noms des identifiants utilisés pour les noms des paramètres lors de la création de la fonction et avec cet ordre là.

    Note : Les générateurs créés avec le constructeur GeneratorFunction ne créent pas de fermetures avec leurs contextes de création. Ils sont toujours créés dans la portée globale. Lorsqu'ils sont exécutés, ils n'ont accès qu'à leurs variables locales et aux variables globales et ils n'ont pas accès aux variables de la portée où a eu lieu l'appel à GeneratorFunction. Ce comportement est différent de celui obtenu lorsqu'on appelle eval avec du code correspondant à une expression de générateur.

    L'appel du constructeur GeneratorFunction comme fonction (c'est-à-dire sans utiliser l'opérateur new) aura le même effet que si celui-ci est invoqué comme constructeur.

    Propriétés

    GeneratorFunction.length
    La propriété de longueur du constructeur GeneratorFunction qui vaut 1.
    GeneratorFunction.prototype
    Le prototype du constructeur qui permet d'ajouter des propriétés à tous les générateurs.

    Le prototype de GeneratorFunction

    Propriétés

    GeneratorFunction.constructor
    La valeur initiale correspond à GeneratorFunction.
    GeneratorFunction.prototype.prototype
    La valeur est %GeneratorPrototype%.

    Les instances de GeneratorFunction

    Les instances de GeneratorFunction héritent des méthodes et propriétés de GeneratorFunction.prototype. Comme pour tous les constructeurs, il est possible de modifier le prototype afin d'apporter des modifications à toutes les instances de GeneratorFunction.

    Exemples

    Créer un générateur en utilisant le constructeur GeneratorFunction

    var GeneratorFunction = Object.getPrototypeOf(function*(){}).constructor
    var g = new GeneratorFunction("a", "yield a * 2");
    var itérateur = g(10);
    console.log(itérateur.next().value); // 20
    

    Spécifications

    Spécification Statut Commentaires
    ECMAScript 6 (ECMA-262)
    La définition de 'GeneratorFunction' dans cette spécification.
    Draft Définition initiale.

    Compatibilité des navigateurs

    Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Support simple (Oui) 26 (26) ? ? ?
    Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Support simple ? (Oui) 26 (26) ? ? ?

    Voir aussi

    Étiquettes et contributeurs liés au document

    Contributors to this page: SphinxKnight
    Dernière mise à jour par : SphinxKnight,