Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Objets natifs standards
  5. Function

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 EnglishAlways switch to English

Function

Baseline Widely available *

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.

Chaque fonction JavaScript est en réalité un objetFunction (ce qu'on peut vérifier avec l'expression(function(){}).constructor === Function qui donnetrue).

Constructeur

Function()

Crée un nouvel objetFunction. Appeler le constructeur directement permet de créer des fonctions dynamiquement, mais ouvre la porte à des problèmes de sécurité et de performances (à l'instar de la fonctioneval()). Toutefois, à la différence deeval(), l'impact est bien moindre, car le constructeurFunction crée des fonctions qui s'exécutent uniquement dans la portée globale.

Propriétés des instances

Function.prototype.argumentsObsolète

Un tableau contenant les arguments passés à la fonction. Cette propriété deFunction est dépréciée, il faudra à la place utiliser l'objetarguments qui est disponible à l'intérieur de la fonction.

Function.prototype.callerObsolète

Indique la fonction qui a appelé la fonction courante qui s'exécute. Cette propriété est dépréciée et ne fonctionne que pour les fonctions non-strictes.

Function.prototype.displayName

Le nom d'affichage de la fonction.

Function.prototype.length

Indique le nombre d'arguments attendus par la fonction.

Function.prototype.name

Le nom de la fonction.

Méthodes des instances

Function.prototype.apply(<var>thisArg</var> [, <var>argsArray</var>])

Appelle une fonction et définit sa valeurthis avec l'argumentthisArg fourni. Les arguments peuvent être passés via untableau.

Function.prototype.bind(<var>thisArg</var>[, <var>arg1</var>[, <var>arg2</var>[, ...<var>argN</var>]]])

Crée une nouvelle fonction qui, lorsqu'elle est appelée, a sa valeurthis fixée avec l'argumentthisArg fourni. Une suite d'arguments peut également être fournie afin qu'ils soient passés parmi les premiers arguments de la nouvelle fonction ainsi créée lorsqu'elle est appelée.

Function.prototype.call(<var>thisArg</var>[, <var>arg1</var>, <var>arg2</var>, ...<var>argN</var>])

Appelle une fonction en fixant sa valeurthis avec la valeur fournie. Les arguments sont passés tels quels.

Function.prototype.toString()

Renvoie une chaîne de caractères qui représente le code source de la fonction. Il s'agit d'une surcharge de la méthodeObject.prototype.toString().

Exemples

Différence entre l'utilisation du constructeurFunction() et les déclarations de fonction

Les fonctions créées avec le constructeurFunction() 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 constructeurFunction() a été appelé. Il s'agit d'un comportement différent que celui obtenu en utilisanteval() avec une expression de fonction.

js
var x = 10;function creerFonction1() {  var x = 20;  return new Function("return x;");  // ce x fait référence à la variable globale x}function creerFonction2() {  var x = 20;  function f() {    return x;    // ce x fait référence à la variable locale x juste avant  }  return f;}var f1 = creerFonction1();console.log(f1()); // 10var f2 = creerFonction2();console.log(f2()); // 20

Bien que ce code fonctionne dans les navigateurs web,f1() déclenchera une erreurReferenceError avec Node.js, carx ne sera pas trouvé. En effet, la portée de plus haut niveau de Node n'est pas la portée globale etx sera local au module.

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-function-objects

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp