mozilla
Vos résultats de recherche

    Function.name

    Cette fonction, proposition pour ECMAScript 6 (Harmony), est expérimentale
    Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
    Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

    Résumé

    La propriété function.name renvoie le nom de la fonction.

    Description

    La propriété name renvoie le nom d'une fonction ou bien la chaîne vide dans le cas des fonctions anonymes :

    function faireQqc() { }
    
    console.log(faireQqc.name); // affiche "faireQqc"
    

    Les fonctions créées avec la syntaxe new Function(...) ou  Function(...) voient leurs noms initialisés avec la chaîne de caractères vide. Dans les exemples suivants, on utilise des fonctions anonymes pour lesquelles  name renvoie la chaîne vide :

    var f = function() { };
    var objet = {
      uneMéthode: function() {}
    };
    
    console.log(f.name == ""); // true
    console.log(objet.uneMéthode.name == ""); // true
    

    On peut définir une fonction nommée avec une expression de fonction :

    var objet = {
      uneMéthode: function objet_uneMéthode() {}
    };
    console.log(objet.uneMéthode.name); // affiche "objet_uneMéthode"
    
    try { objet_uneMéthode} catch(e) { console.log(e); }
    // ReferenceError: objet_uneMéthode n'est pas défini
    

    Cette propriété n'est accessible qu'en lecture, on ne peut pas la changer :

    var objet = {
      // anonyme
      uneMéthode: function() { }
    };
    
    objet.uneMéthode.name = "uneMéthode";
    console.log(objet.uneMéthode.name); // chaîne vide, uneMéthode est anonyme
    

    Exemples

    On peut utiliser obj.constructor.name pour consulter le prototype d'un objet :

    function a() { }
    
    var b = new a();
    console.log(b.constructor.name); // Affichera "a"
    

    Spécifications

    Spécification Statut Commentaires
    ECMAScript 6 (ECMA-262)
    La définition de 'name' dans cette spécification.
    En cours de validation comme recommandation Définition initiale.

    Compatibilité des navigateurs

    Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Support simple 33 (Oui) Pas de support (Oui) (Oui)
    Configurable : true 43 38 (38) ? ? ?
    Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Support simple (Oui) (Oui) (Oui) Pas de support (Oui) (Oui)
    Configurable : true ? ? 38.0 (38) ? ? ?

    Étiquettes et contributeurs liés au document

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