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.
* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.
L'objet Function fournit des méthodes pour les fonctions. En JavaScript, chaque fonction est en réalité un objet Function.
Crée un nouvel objet Function. Appeler le constructeur directement permet de créer des fonctions dynamiquement, mais cela présente des problèmes de sécurité et de performances similaires (mais bien moindres) à eval(). Cependant, contrairement à eval(), le constructeur Function crée des fonctions qui s'exécutent uniquement dans la portée globale.
Ces propriétés sont définies sur Function.prototype et partagées par toutes les instances de Function.
Function.prototype.argumentsReprésente les arguments passés à cette fonction. Pour les fonctions strictes, fléchées, asynchrones et génératrices, accéder à la propriété arguments déclenche une TypeError. Utilisez plutôt l'objet arguments à l'intérieur des fermetures de fonction.
Function.prototype.callerReprésente la fonction qui a appelé cette fonction. Pour les fonctions strictes, fléchées, asynchrones et génératrices, accéder à la propriété caller déclenche une erreur de typage (TypeError).
Function.prototype.constructorLa fonction constructeur qui a créé l'objet instance. Pour les instances de Function, la valeur initiale est le constructeur Function.
Ces propriétés sont propres à chaque instance de Function.
displayName FacultatifLe nom d'affichage de la fonction.
lengthIndique le nombre d'arguments attendus par la fonction.
nameLe nom de la fonction.
prototypeUtilisé lorsque la fonction est utilisée comme constructeur avec l'opérateur new. Cela deviendra le prototype du nouvel objet.
Appelle une fonction avec une valeur this donnée et des arguments optionnels fournis sous forme de tableau (ou d'objet semblable à un tableau).
Function.prototype.bind()Crée une nouvelle fonction qui, lorsqu'elle est appelée, a son mot-clé this fixé à une valeur donnée, éventuellement avec une séquence d'arguments précédant ceux fournis lors de l'appel de la nouvelle fonction.
Function.prototype.call()Appelle une fonction avec une valeur this donnée et des arguments optionnels.
Function.prototype.toString()Retourne une chaîne de caractères représentant le code source de la fonction. Surcharge la méthode Object.prototype.toString.
Function.prototype[Symbol.hasInstance]()Définit la procédure par défaut pour déterminer si une fonction constructeur reconnaît un objet comme étant une de ses instances. Appelée par l'opérateur instanceof.
Les fonctions créées avec le constructeur Function() ne créent pas de fermetures contenant leur contexte de création ; elles sont toujours créées dans la portée globale. Lors de leur exécution, elles ne pourront accéder qu'à leurs propres variables locales et aux variables globales, elles ne pourront pas accéder aux variables de la portée dans laquelle le constructeur Function() a été appelé. Il s'agit d'un comportement différent que celui obtenu en utilisant eval() avec une expression de fonction.
Bien que ce code fonctionne dans les navigateurs web, f1() déclenchera une erreur ReferenceError avec Node.js, car x ne sera pas trouvé. En effet, la portée de plus haut niveau de Node n'est pas la portée globale et x sera local au module.
| ECMAScript® 2027 Language Specification # sec-function-objects |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 24 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.