Function.displayName

Non standard
Cette fonctionnalité n'est ni standard, ni en voie de standardisation. Ne l'utilisez pas pour des sites accessibles sur le Web : elle ne fonctionnera pas pour tout utilisateur. Il peut également y avoir d'importantes incompatibilités entre les implémentations et son comportement peut être modifié dans le futur.

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

Description

Lorsque la propriété displayName est définie, elle renvoie le nom affiché de la fonction :

function faireTruc() { }

console.log(faireTruc.displayName); // "undefined"

var logMessage = function(contenu) { console.log(contenu) };

logMessage.displayName = 'Afficher les messages dans le journal';

console.log(logMessage.displayName); // "Afficher les messages dans le journal"

Il est possible de définir une fonction avec un nom d'affichage grâce à une expression de fonctions:

var objet = {
  uneMéthode: function () {}
};

objet.uneMéthode.displayName = 'uneMéthode';

console.log(objet.uneMéthode.displayName); 
// "uneMéthode"

try { uneMéthode } catch(e) { console.log(e); }
// ReferenceError: uneMéthode is not defined

La propriété displayName peut être changée dynamiquement :

var objet = {
  // anonyme
  uneMéthode: function(valeur) {
    this.displayName = "uneMéthode (" + valeur + ")";
  }
};

console.log(objet.uneMéthode.displayName); // "undefined"

objet.uneMéthode("123")
console.log(objet.uneMéthode.displayName); // "uneMéthode (123)"

Exemples

On souhaite généralement utiliser cette propriété dans les consoles et profileurs plutôt que func.name

Le code suivant devrait afficher quelque chose comme "function Ma Fonction()":

var a = function () { };
a.displayName = 'Ma Fonction';

a;

Spécifications

N'appartient à aucune spécification.

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
displayName
Non-standard
Chrome Aucun support NonEdge Aucun support NonFirefox Support complet 13IE Aucun support NonOpera Aucun support NonSafari ? WebView Android Aucun support NonChrome Android Aucun support NonFirefox Android Support complet 14Opera Android Aucun support NonSafari iOS ? Samsung Internet Android Aucun support Nonnodejs Aucun support Non

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.