Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La méthode toString() des instances de Function retourne une chaîne de caractères représentant le code source de la fonction.
Aucun.
Une chaîne de caractères qui représente le code source de la fonction.
L'objet Function remplace la méthode toString() héritée de Object ; il n'hérite pas de Object.prototype.toString. Pour les objets Function définis par l'utilisateur, la méthode toString retourne une chaîne contenant le segment de texte source utilisé pour définir la fonction.
JavaScript appelle automatiquement la méthode toString lorsqu'une Function doit être représentée comme une valeur textuelle, par exemple lorsqu'une fonction est concaténée avec une chaîne.
La méthode toString() lèvera une exception TypeError ("Function.prototype.toString called on incompatible object"), si l'objet this n'est pas un objet Function.
Si la méthode toString() est appelée sur des objets fonction intégrés, une fonction créée par Function.prototype.bind(), ou d'autres fonctions non JavaScript, alors toString() retourne une chaîne de fonction native qui ressemble à
function someName() { [native code] }Pour les méthodes et fonctions des objets intrinsèques, someName est le nom initial de la fonction ; sinon, son contenu peut être défini par l'implémentation, mais sera toujours dans la syntaxe du nom de propriété, comme [1 + 1], someName ou 1.
Note : Cela signifie que l'utilisation de eval() sur des chaînes de fonctions natives est une erreur de syntaxe garantie.
Si la méthode toString() est appelée sur une fonction créée par le constructeur Function, toString() retourne le code source d'une déclaration de fonction synthétisée nommée "anonymous" en utilisant les paramètres et le corps de fonction fournis. Par exemple, Function("a", "b", "return a + b").toString() retournera :
function anonymous(a,b ) { return a + b }Depuis ES2018, la spécification exige que la valeur de retour de toString() soit exactement le même code source que celui utilisé lors de la déclaration, y compris les espaces et/ou les commentaires — ou, si l'hôte n'a pas le code source disponible pour une raison quelconque, il doit retourner une chaîne de fonction native. La prise en charge de ce comportement révisé peut être trouvée dans le tableau de compatibilité.
Notez qu'après la révision de Function.prototype.toString(), lorsque toString() est appelé, les implémentations ne sont jamais autorisées à synthétiser le code source d'une fonction qui n'est pas une chaîne de fonction native. La méthode retourne toujours le code source exact utilisé pour créer la fonction — y compris les exemples d'accesseur et de mutateur ci-dessus. Le constructeur Function lui-même a la capacité de synthétiser le code source de la fonction (et est donc une forme implicite de la méthode eval()).
Il est possible d'obtenir le texte source d'une fonction en la forçant à être une chaîne de caractères — par exemple, en l'enveloppant dans un littéral de modèle :
Cette source est exacte, y compris les commentaires intercalés (qui ne seront pas stockés par la représentation interne du moteur autrement).
| ECMAScript® 2027 Language Specification # sec-function.prototype.tostring |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 25 févr. 2026 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.