Function.prototype.toString()
La méthode toString()
renvoie une chaîne de caractères représentant le code source de la fonction.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
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
.
Function.prototype.toString.call("toto"); // 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 (ECMA-262) La définition de 'Function.prototype.toString' dans cette spécification. |
Standard évolutif |
Compatibilité des navigateurs
BCD tables only load in the browser
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ètreindentation
n'est donc plus nécessaire. Pour plus d'informations, voir bug 761723. - À partir de Firefox 38 et jusqu'à Firefox 63,
Function.prototype.toString()
levait une exception pour lesProxy
(cf. bug 1100936 et bug 1440468).