SELFHTML

Function

Page d'information: vue d'ensemble

vers le bas Généralités sur l'utilisation

Propriétés:

vers le bas arguments (tableau de noms d'arguments)
vers le bas arity (nombre d'arguments)
vers le bas caller (nom de la fonction qui appelle)

 vers le bas 

Function: généralités sur l'utilisation

Par l'objet Function vous avez accès aux propriétés d'une Autre page d'information fonction JavaScript. Les fonctions JavaScript font ainsi elles même l'objet d'instructions JavaScript. Travailler avec l'objet Function est judicieux, par exemple en relation avec un nombre de paramètres variable dans une fonction.

Vous pouvez créer spécialement un nouvel objet Function.

Exemple:

couleur = new Function("nouvelle_couleur","document.bgColor=nouvelle_couleur;");

Correspondance de l'exemple en écriture normale:

function couleur(nouvelle_couleur) {
 document.bgColor=nouvelle_couleur;
}

Exemple d'appel dans les deux cas:

<a href="javascript:couleur('#FFCC99')">Nouvel arrière plan</a>

Explication:

Considérez dans un premier temps la partie au milieu de l'exemple ("correspondance de l'exemple en écriture normale"). C'est la définition normale d'une fonction. Dans la partie au dessus, la même fonction est définie sous la forme toutefois d'un objet fonction. L'objet fonction est créé avec new Function(...). La valeur retournée est sauvegardée dans une variable, dans l'exemple la variable couleur. Comme paramètres, la fonction Function attend un nombre de paramètres au choix (ceux que la fonction doit attendre), interprétés en tant que tels jusqu'à l'avant dernier. Dans l'exemple il y a un tel paramètre, à savoir le paramètre nouvelle_couleur. Le dernier paramètre qui est transmis à la fonction Function est une chaîne de caractères qui représente le contenu global de la fonction, donc les instructions JavaScript dans la fonction.

Une variable dans laquelle est sauvegardée une fonction, comme dans l'exemple la variable couleur, peut être appelée exactement comme une fonction. La troisième partie ("exemple d'appel dans les deux cas") est effectivement valable pour les deux cas, car dans l'un des cas, c'est la variable couleur qui est appelée dans laquelle toute une fonction est sauvegardée, et dans l'autre cas c'est une fonction du nom de couleur() qui est appelée.

Vous n'êtes cependant pas obligés de créer un nouvel objet fonction: vous pouvez également utiliser directement sur une fonction les propriétés de l'objet fonction.

Exemple pour employer directement les propriétés de fonction:

Démonstration - nouvelle fenêtre Exemple d'affichage: aperçu

<html><head><title>Test</title>
</head><body>
<script type="text/javascript">
<!--
function listeHTML(Type) {
 document.write("<" + Type + "l>");
 for (var i=1; i<listeHTML.arguments.length; i++)
  document.write("<li>" + listeHTML.arguments[i]+"</li>");
 document.write("</" + Type + "l>");
}
listeHTML("U","un","deux","trois");
//-->
</script>
</body></html>

L'exemple écrit de façon dynamique une liste HTML dans le fichier soit comme liste énumérative, soit comme liste numérotée. Cela se fait dans une fonction du nom de listeHTML(). Sous la fonction se trouve l'appel de la fonction, dans lequel quatre paramètres sont transmis. Pourtant, la fonction listeHTML() n'attend qu'un paramètre, à savoir le paramètre Type. Pour cela, il faut transmettre un U ou un O. Suivant le cas, la fonction génère une liste <ul> (énumérative) ou une liste <ol> (numérotée).

À l'intérieur de la fonction, le nombre effectif d'éléments transmis est cependant demandé avec listeHTML.arguments.length. La fonction suppose que tous les paramètres à partir du deuxième sont des éléments de la liste désirée. La fonction écrit avec des commandes document.write() les points correspondants en utilisant dans l'ordre les paramètres transmis, étant donné que cette action se situe dans une boucle for.

 vers le hautvers le bas 

JavaScript 1.1Netscape 3.0MS IE 4.0lecture arguments

Sauvegarde dans un tableau, donc dans une chaîne d'éléments, les arguments qui ont été transmis à une fonction. Chaque élément représente un argument. La propriété n'est disponible que dans la fonction à laquelle elle se réfère.

Exemple:

Démonstration - nouvelle fenêtre Exemple d'affichage: aperçu

<html><head><title>Test</title>
</head><body>
<script language="JavaScript" type="text/javascript">
<!--
function Test(nom,prenom) {
 document.write("La fonction a reçu  " + Test.arguments.length + " arguments");
 for (var i=0; i<Test.arguments.length; ++i)
  document.write("<BR>" + Test.arguments[i]);
}
Test("François", "Serge");
//-->
</script>
</body></html>

Explication:

L'exemple définit une fonction Test(), qui se voit transmettre deux paramètres. La fonction écrit de façon dynamique dans le fichier HTML, combien de paramètres elle attend puis, dans une boucle for, quelles valeurs ont été transmises.

Avec nomdelafonction.arguments.length vous recherchez le nombre de paramètres effectivement transmis (et non pas le nombre de paramètres attendus).

Avec nomdelafonction.arguments[0] vous adressez la valeur du premier paramètre transmis, avec nomdelafonction.arguments[1] celui du deuxième paramètre etc...

 vers le hautvers le bas 

JavaScript 1.2Netscape 4.0lecture arity

Sauvegarde le nombre d'arguments attendus par une fonction. La propriété n'est disponible que hors de la fonction à laquelle elle se réfère. Le passage JavaScript dans lequel l'instruction apparaît doit être marqué avec JavaScript1.2.

Exemple:

Démonstration - nouvelle fenêtre Exemple d'affichage: aperçu

<html><head><title>Test</title>
<script language="JavaScript1.2" type="text/javascript">
<!--
function Test(nom,prenom) {
 return(prenom + " " + nom);
}
alert("La fonction attend  " + Test.arity + " arguments");
//-->
</script>
</head><body>
</body></html>

Explication:

L'exemple définit une fonction Test(), qui attend deux paramètres. La fonction n'est pas du tout appelée dans l'exemple, à la place une boite de dialogue sort combien d'arguments la fonction Test() attend. Pour ce faire, la propriété arity est appliquée à la fonction désirée.

 vers le hautvers le bas 

JavaScript 1.1Netscape 3.0MS IE 4.0lecture caller

Sauvegarde la fonction complète à partir de laquelle la fonction actuelle a été appelée. A la valeur null, au cas où l'appel a eu lieu directement d'un gestionnaire d'événement ou à la lecture du fichier hors de toute autre fonction. La propriété n'est disponible que dans la fonction à laquelle elle se réfère.

Exemple:

Démonstration - nouvelle fenêtre Exemple d'affichage: aperçu

<html><head><title>Test</title>
<script type="text/javascript">
<!--
function Test() {
 alert(Test.caller);
}
function appel() {
 Test();
}
//-->
</script>
</head><body>
<a href="javascript:appel()">Qui appelle Test()?</a>
</body></html>

Explication:

L'exemple définit dans l'entête de fichier deux fonctions: une fonction Test() et une fonction appel(). La fonction Test() ne fait rien d'autre que sortir à partir de quelle fonction elle a été appelée, la fonction appel() ne fait rien d'autre qu'appeler la fonction Test(). Dans le fichier, un lien est noté plus loin qui, lorsqu'on le clique, appelle la fonction appel() qui à son tour appelle la fonction Test(). La fonction Test() sort alors le code complet de la fonction appel(). .

Attention:

Opera 5.12 n'interprète pas cette propriété.

 vers le haut
page suivante Autre page d'information Math
page précédente Autre page d'information Date
 

© 2001 Stefan Münz / © 2002 Traduction Adresse électronique Serge François, 13405@free.fr
Adresse électronique selfhtml@fr.selfhtml.org