Visit Mozilla.org

Référence de JavaScript 1.5 Core:Fonctions:arguments:callee

Un article de MDC.


Sommaire

[modifier] Résumé

Désigne la fonction en cours d'exécution.

Propriété de arguments ; Function.arguments (déprécié)
Implémentation : JavaScript 1.2

JavaScript 1.4 : callee est obsolète en tant que propriété de Function.arguments, et devient une propriété de la variable locale arguments propre à chaque fonction.

Version ECMA : ECMA-262

[modifier] Description

callee est une propriété de la variable locale arguments présente dans tous les objets de type fonction. callee n'est plus utilisée comme une propriété de Function.arguments. (Function.arguments est elle-même dépréciée.)

arguments.callee permet aux fonctions anonymes de se référer à elles-mêmes, ce dont ont besoin les fonctions anonymes récursives.

Le mot-clé this ne fait pas référence à la fonction en cours d'exécution. Utilisez la propriété callee pour vous référer à une fonction depuis l'intérieur de celle-ci.

[modifier] Exemples

[modifier] Exemple : utilisation d'arguments.callee dans une fonction anonyme récursive

Une fonction récursive doit pouvoir s'appeller elle-même. Normalement, une fonction fait référence à elle-même grâce à son nom. Dans le cas d'une fonction anonyme (qui n'a pas de nom), la fonction n'est assignée à aucune variable, elle ne peut pas s'appeller. (Les fonctions anonymes peuvent être créées par l'opérateur Function ou par le constructeur Function).

C'est ici qu'intervient arguments.callee.

L'exemple suivant décrit une fonction qui elle-même définit et renvoie une fonction factorielle.

function makeFactorialFunc() {
   alert("Création d'une fonction factorielle");
   return function(x) {
      if (x <= 1)
         return 1;
      return x * arguments.callee(x - 1);
   };
}

var result = makeFactorialFunc()(5); // renvoie 120 (5 * 4 * 3 * 2 * 1)