Guide JavaScript 1.5:Définition de fonctions
Un article de MDC.
[modifier] Définition de fonctions
Une définition de fonction est constituée du mot-clé function, suivi :
- Du nom de la fonction.
- D'une liste de paramètres séparée par des virgules et entourée de parenthèses.
- Des instructions JavaScript définissant la fonction, entourés de crochets recourbés,
{ }. Les instructions d'une fonction peuvent comprendre des appels à d'autres fonctions définies dans l'application courante.
Par exemple, le code suivant définit une fonction simple appelée carre :
function carre(nombre) {
return nombre * nombre;
}
La fonction carre prend un paramètre, appelé nombre. Elle consiste en une seule instruction indiquant de renvoyer la valeur de ce paramètre multipliée par elle-même. L'instruction return spécifie la valeur renvoyée par la fonction.
return nombre * nombre;
Tous les paramètres sont passés aux fonctions par valeur ; la valeur est passée à la fonction, mais si la fonction modifie la valeur de ce paramètre, le changement n'est pas répercuté globalement ou dans la fonction appelante. Cependant, si un objet est passé en paramètre à une fonction et que la fonction modifie les propriétés de l'objet, le changement est visible en dehors de la fonction, comme le montre l'exemple suivant :
function maFonction(monObjet) {
monObjet.marque = "Toyota";
}
maVoiture = {marque: "Honda", modele: "Accord", annee: 1998};
x = maVoiture.marque; // renvoie Honda
maFonction(maVoiture); // passe l'objet maVoiture à la fonction
y = maVoiture.marque; // renvoie Toyota (la propriété a été changée dans la fonction)
Une fonction peut être définie sur base d'une condition. Par exemple, si on prend la définition de fonction suivante :
if (num == 0)
{
function maFonction(monObjet) {
monObjet.marque = "Toyota";
}
}
la fonction maFonction est uniquement définie si la variable num est égale à 0. Si ce n'est pas le cas, la fonction ne sera pas définie, et toute tentative de l'exécuter échouera.
En plus de définir des fonctions comme montré ici, il est également possible de créer des objets Function.
Une méthode est une fonction associée à un objet. Vous pourrez en savoir plus sur les objets et méthodes dans le chapitre « Utilisation d'objets ».
Une fonction peut également être définie à l'intérieur d'une expression. Typiquement, il s'agira d'une fonction anonyme ; elle n'a pas nécessairement de nom. Par exemple, la fonction carre aurait pu être définie ainsi :
const carre = function(nombre) {return nombre * nombre};
Cela peut être utile lors du passage d'une fonction en paramètre à une autre fonction. L'exemple suivant montre une fonction relation étant définie, puis appelée avec une fonction anonyme comme premier paramètre :
function relation(f, a) {
var resultat = new Array;
for (var i = 0; i != a.length; i++)
resultat[i] = f(a[i]);
return resultat;
}
L'appel
relation(function(x) {return x * x * x}, [0, 1, 2, 5, 10]);
renverra [0, 1, 8, 125, 1000].