5. Fonctions

     ◄ Retour accueil

 

 


Déclarer une fonction

Une fonction est un bloc d'instructions regroupées sous un seul nom. Vous pouvez ensuite invoquer la fonction pour l'exécuter. Une fonction peut recevoir des paramètres ou retourner des valeurs.
Pour ce faire, on utilise le mot clé function suivi du nom qu'on souhaite donner à la fonction.

~> selon les standards que j'adopte, mes noms de fonction débutent si possible par un verbe à l'infinitif <~

Puis coller au nom et à sa fin, on doit mettre obligatoirement une paire de parenthèses. Si la fonction reçoit des paramètres, ces derniers sont nommés dans l'ordre reçu entre ces parenthèses. Ensuite, toutes les instructions contenues à l'intérieur de la fonction sont placées entre une paire d'accolades.
Les instructions d'une fonction ne sont pas exécutées tant que la fonction n'est pas invoquée.

Les noms de fonctions obéissent aux mêmes restrictions que les noms de variables. (doivent commencer par une lettre, etc.)

~> selon les standards que j'adopte,  les noms de paramètres commencent pas p_ <~

Exemple :

function EcrirePhrase(p_phrase)
    {
    document.write(p_phrase);
    }

var message= "Les étoiles sont belles comme des roses.";
// Appel de la fonction.
// Elle pourrait aussi être invoquée par un onload ou un onclick, etc.
EcrirePhrase(message);

Si la fonction n'avait pas besoin de paramètres, l'appel aurait du tout de même garder ses parenthèses à l'image de EcrirePhrase();


Portée des variables

Toutes les variables déclarées avec le mot clé var à l'intérieur d'une fonction sont dites locales à cette fonction. Une variable est locale lorsqu'on ne peut s'en servir qu'à l'intérieur de la fonction elle-même et non dans le reste du code.

Une variable est globale lorsqu'elle est accessible par n'importe quel code dans la page. Une variable globale peut être déclarée dans une fonction quand on le la précède pas du mot clé var, ou bien lorsqu'une variable est déclarée à l'extérieur d'une fonction avec ou sans var.

Je conseille pour ne pas avoir de problèmes avec des variables non définies, de toujours utiliser var pour déclarer vos variables.
Aussi d'adopter un standard pour nommer vos variables,
par exemple précéder les variables globales de g_ ...
Il y a une raison à opter pour des variables locales à l'intérieur des fonctions.. ceci permet de créer des fonctions transportables sur d'autres pages et donc réutilisables.

Les fonctions qui reçoivent des paramètres les convertissent en variables locales, ce qui signifie qu'elles en font une copie. Si on passe la variable nommée "abeille" à une fonction et qu'à l'intérieur de la fonction on appelle ce paramètre p_abeille, eh bien les deux sont maintenant des variables distinctes. Si abeille change, p_abeille ne changera pas.. il faut alors songer à des fonction qui retourne des valeurs ou non, etc.


Valeur de retour

Il est possible de faire en sorte qu'une fonction retourne une valeur en utilisant le mot clé return. Ceci permet à la fonction de manipuler une valeur puis de la retourner au programme principal. Pour conserver la valeur retournée, il faudra que le résultat de la fonction soit affecté à une variable. La valeur retournée par la fonction peut être de n'importe quel type.

Exemple :

function moyenne(p_nombre1, p_nombre2, p_nombre3)
    {
    return ((p_nombre1 + p_nombre2 + p_nombre3) / 3);
    }

document.write("La moyenne est de " + moyenne(34, 56, 78));


Ceci affichera : « La moyenne est de 56 ».


Appel via lien

Il est possible d'appeler une fonction Javascript en référant son nom à l'intérieur d'un lien HTML. On doit utiliser pour ce faire le mot clé javascript: , puis mettre à sa suite le nom de la fonction.

Exemple :

function direBonjour()
    {
    document.write("Bonjour !!!!!");
    }
</script>
<a href="javascript:direBonjour()">Cliquez et ce lien sera remplacé par bonjour!</a>

Aussi, il est possible d'invoquer une fonction à l'aide de l'attribut action d'une balise de form (qui pourrait remplacer le onclick pour un bouton par exemple, etc...) Syntaxe : <form action="javascript:direBonjour()"> <input....>


With

Si un objet possède plusieurs fonctions membres et qu'on réfère souvent à ces dernières par lui, il devient pratique d'utiliser l'objet standard with qui nous empêche à toujours devoir réécrire le nom de l'objet en cause dans une partie de code.

Exemple :

Je travaille avec une image nommée "MonChat" que je désire faire imprimer. Ici je vais inscrire cinq fois le nom de cette image :
print(MonChat.title + ' voici la provenance : ' + MonChat.source);
print('Dimension : ' + (MonChat.width * MonChat.height);

Le code s'avère moins long à taper avec with :
with(MonChat)
    {
    print(title + ' voici la provenance : ' + source);
    print('Dimension : ' + (width * height);
    }

Hosted by www.Geocities.ws

1