[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Function [Back]  [Original]

Function - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

Function

Baseline Large disponibilit *

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 bnficier de prise en charge variables.

L'objet Function fournit des mthodes pour les fonctions. En JavaScript, chaque fonction est en ralit un objet Function.

Dans cet article

Constructeur

Function()

Cre un nouvel objet Function. Appeler le constructeur directement permet de crer des fonctions dynamiquement, mais cela prsente des problmes de scurit et de performances similaires (mais bien moindres) eval(). Cependant, contrairement eval(), le constructeur Function cre des fonctions qui s'excutent uniquement dans la porte globale.

Proprits d'instance

Ces proprits sont dfinies sur Function.prototype et partages par toutes les instances de Function.

Function.prototype.arguments

Reprsente les arguments passs cette fonction. Pour les fonctions strictes, flches, asynchrones et gnratrices, accder la proprit arguments dclenche une TypeError. Utilisez plutt l'objet arguments l'intrieur des fermetures de fonction.

Function.prototype.caller

Reprsente la fonction qui a appel cette fonction. Pour les fonctions strictes, flches, asynchrones et gnratrices, accder la proprit caller dclenche une erreur de typage (TypeError).

Function.prototype.constructor

La fonction constructeur qui a cr l'objet instance. Pour les instances de Function, la valeur initiale est le constructeur Function.

Ces proprits sont propres chaque instance de Function.

displayName Facultatif

Le nom d'affichage de la fonction.

length

Indique le nombre d'arguments attendus par la fonction.

name

Le nom de la fonction.

prototype

Utilis lorsque la fonction est utilise comme constructeur avec l'oprateur new. Cela deviendra le prototype du nouvel objet.

Mthodes d'instance

Function.prototype.apply()

Appelle une fonction avec une valeur this donne et des arguments optionnels fournis sous forme de tableau (ou d'objet semblable un tableau).

Function.prototype.bind()

Cre une nouvelle fonction qui, lorsqu'elle est appele, a son mot-cl this fix une valeur donne, ventuellement avec une squence d'arguments prcdant ceux fournis lors de l'appel de la nouvelle fonction.

Function.prototype.call()

Appelle une fonction avec une valeur this donne et des arguments optionnels.

Function.prototype.toString()

Retourne une chane de caractres reprsentant le code source de la fonction. Surcharge la mthode Object.prototype.toString.

Function.prototype[Symbol.hasInstance]()

Dfinit la procdure par dfaut pour dterminer si une fonction constructeur reconnat un objet comme tant une de ses instances. Appele par l'oprateur instanceof.

Exemples

Diffrence entre l'utilisation du constructeur Function() et les dclarations de fonction

Les fonctions cres avec le constructeur Function() ne crent pas de fermetures contenant leur contexte de cration ; elles sont toujours cres dans la porte globale. Lors de leur excution, elles ne pourront accder qu' leurs propres variables locales et aux variables globales, elles ne pourront pas accder aux variables de la porte dans laquelle le constructeur Function() a t appel. Il s'agit d'un comportement diffrent que celui obtenu en utilisant eval() avec une expression de fonction.

js
// Cre une proprit globale avec `var`
var x = 10;

function creerFonction1() {
  var x = 20;
  return new Function("return x;"); // ce `x` fait rfrence au `x` global
}

function creerFonction2() {
  var x = 20;
  function f() {
    return x; // ce `x` fait rfrence au `x` local ci-dessus
  }
  return f;
}

var f1 = creerFonction1();
console.log(f1()); // 10
var f2 = creerFonction2();
console.log(f2()); // 20

Bien que ce code fonctionne dans les navigateurs web, f1() dclenchera une erreur ReferenceError avec Node.js, car x ne sera pas trouv. En effet, la porte de plus haut niveau de Node n'est pas la porte globale et x sera local au module.

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-function-objects

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page