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 : |
| 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)