La méthode toString() renvoie une chaîne de caractères représentant le code source de la fonction.

Syntaxe

function.toString(indentation)

Valeur de retour

Une chaîne de caractères qui représente le code source de la fonction.

Description

L'objet Function redéfinit la méthode toString de l'objet Object ; il n'hérite donc pas de Object.prototype.toString. Pour les objets Function, la méthode toString renvoie une chaîne de caractères représentant l'objet sous la forme d'une déclaration de fonction. Pour ce faire, toString décompile la fonction pour renvoyer une chaîne qui contient le mot-clé function, la liste des arguments, les accolades et la source correspondant au corps de la fonction.

Le moteur JavaScript appelle la méthode toString automatiquement lorsqu'un objet Function doit être représenté textuellement (par exemple lorsqu'une fonction doit être concaténée avec une chaîne de caractères).

La méthode toString() lèvera une exception TypeError (« Function.prototype.toString called on incompatible object ») si la valeur this n'est pas un objet Function. Ceci ne fonctionnera pas non plus avec les objets Proxy.

Function.prototype.toString.call("toto"); // TypeError

var proxy = new Proxy(function() {}, {});
Function.prototype.toString.call(proxy); // TypeError

Si la méthode toString() est appelée sur des fonctions natives qui ne sont pas définies dans le script, toString() renvoie une chaîne de caractères indiquant le caractère natif :

Math.abs.toString();

"function abs() {
    [native code]
}"

Si la méthode toString() est appelée sur une fonction créée avec le constructeur Function, toString() renverra le code source d'une fonction intitulée anonymous et utilisera les paramètres et le corps de la fonction fournis.

Spécifications

Spécification État Commentaires
ECMAScript 1st Edition (ECMA-262) Standard Définition initiale. Implémentée avec JavaScript 1.1.
Function.prototype.toString() Brouillon Standardise la chaîne de caractères utilisée pour les fonctions natives ainsi que la gestion des fins de ligne.
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Function.prototype.toString' dans cette spécification.
Standard Critères supplémentaires ajoutés sur la représentation de la chaîne.
ECMAScript Latest Draft (ECMA-262)
La définition de 'Function.prototype.toString' dans cette spécification.
Projet  

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
Support simpleChrome Support complet OuiEdge Support complet OuiFirefox Support complet 1IE Support complet 5Opera Support complet OuiSafari Support complet OuiWebView Android Support complet OuiChrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Support complet 4Opera Android Support complet OuiSafari iOS Support complet OuiSamsung Internet Android Support complet Ouinodejs Support complet Oui
Support of toString revisionChrome Aucun support NonEdge Aucun support NonFirefox Support complet 54IE Aucun support NonOpera Aucun support NonSafari Aucun support NonWebView Android Aucun support NonChrome Android Aucun support NonEdge Mobile Aucun support NonFirefox Android Support complet 54Opera Android Aucun support NonSafari iOS Aucun support NonSamsung Internet Android Aucun support Nonnodejs Aucun support Non

Légende

Support complet  
Support complet
Aucun support  
Aucun support

Notes spécifiques à Firefox

  • À partir de Firefox 17.0, Function.prototype.toString() a été implémenté en sauvegardant le code source de la fonction. La méthode utilisant la décompilation a été retirée et le paramètre indentation n'est donc plus nécessaire. Pour plus d'informations, voir bug 761723.
  • À partir de Firefox 38, Function.prototype.toString() lève une exception pour les Proxy (cf. bug 1100936).

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight, romain.bohdanowicz, teoli, Jeremie, BenoitL
Dernière mise à jour par : SphinxKnight,