27


Function
Chaque fonction en JavaScript est en réalité un objet Function.
Syntaxe
new Function ([arg1[, arg2[, ... argN]],] corpsDeLaFonction)
Paramètres
arg1, arg2, ... argN
Noms à utiliser pour les paramètres formels de la fonction. Chacun doit être une chaîne correspondant à un identifiant valide en JavaScript ou une liste de telles chaînes séparées par des virgules. Par exemple « x », « laValeur » ou « a,b ».
corpsDeLaFonction
Une chaîne contenant les instructions JavaScript faisant partie de la définition de la fonction.
Description
Les objets Function créés avec le constructeur Function sont évalués à chaque utilisation. C'est moins performant que de déclarer une fonction et de l'appeler depuis votre code, parce que les fonctions déclarées ne sont analysées qu'une seule fois.
Tous les paramètres passés à la fonction sont traités comme les identifiants des paramètres de la fonction à créer, dans l'ordre dans lequel ils sont passés.
L'appel du constructeur Function comme une fonction (sans utiliser l'opérateur new) a le même effet que son appel en tant que constructeur.
Propriétés
Pour les propriétés héritées par les instances de Function consultez Propriétés des instances de Function.
prototype
Permet l'extension de tous les objets Function.

Propriétés héritées de Function.prototype
caller, constructor, length, name

Méthodes
Pour les méthodes héritées par les instances de Function consultez Méthodes des instances de Function. Bien que l'objet Function ne fournisse aucune méthode de lui-même, il hérite de méthodes au travers de la chaîne de prototypes.
Méthodes héritées de Function.prototype
apply, call, toSource, toString, valueOf
Méthodes héritées de Object.prototype
__defineGetter__, __defineSetter__, hasOwnProperty, isPrototypeOf, __lookupGetter__, __lookupSetter__, __noSuchMethod__, propertyIsEnumerable, unwatch, watch

Instances de Function
L'objet </div>Function</code> hérite de R%C3%A9f%C3%A9rence_de_JavaScript_1.5_Core:Objets_globaux:Function:prototypeFunction.prototype. Les modifications de l'objet <code>Function.prototype sont propagées vers toutes les instances de Function. === Propriétés ===
arguments
Déprécié
Un tableau correspondant aux paramètres passés à une fonction. Cette propriété de Function ne doit plus être utilisée, utilisez plutôt l'objet arguments disponible au sein de la fonction.
arity
Déprécié
Spécifie le nombre de paramètres attendus par la fonction. Utilisez plutôt la propriété length.
caller
Non standard
Indique la fonction ayant invoqué la fonction en cours d'exécution.
constructor
Spécifie la fonction créant le prototype d'un objet.
length
Spécifie le nombre de paramètres attendus par la fonction.
name
Non standard
Le nom de la fonction.
=== Méthodes ===
apply
Appliquer la méthode d'un objet dans le contexte d'un objet différent (l'objet appelant) ; des paramètres peuvent être passés sous la forme d'un objet Array.
call
Appelle (exécute) une méthode d'un objet dans le contexte d'un objet différent (l'objet appelant) ; des paramètres peuvent être passés tels quels.
toSource
Non standard
Renvoie une chaîne représentant le code source de la fonction. Remplace la méthode Object.toSource.
toString
Renvoie une chaîne représentant le code source de la fonction. Remplace la méthode Object.toString.
Méthodes héritées de Object.prototype
__defineGetter__, __defineSetter__, hasOwnProperty, isPrototypeOf, __lookupGetter__, __lookupSetter__, __noSuchMethod__, propertyIsEnumerable, unwatch, valueOf, watch

Exemples
Exemple : définition de paramètres avec le constructeur Function
Le code qui suit crée un objet Function recevant deux paramètres.
var multiplie = new Function("x", "y", "return x * y");
var réponse = multiplie(7, 6);
Les paramètres « x » et « y » sont des noms de paramètres formels utilisés dans le corps de la fonction, « return x * y ».