Passer une fonction en parametre et l'executer dans la fonction acceptant le par

Résolu
cs_Jbs106 Messages postés 32 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 27 avril 2010 - 26 avril 2008 à 20:10
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 28 avril 2008 à 09:32
Bonjour et merci de me lire.

Simple, j'ai une fonction et je souhaiterai passé en parametre une autre fonction, c'est à adire son "adresse" comme si je la pointé et l'utilisé.. en C, c possible, j'crois bien alors pourquoi pas en javascript..?

4 réponses

cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
27 avril 2008 à 09:49
Bonjour,

    il suffisait d'essayer... non ?

<script>
    function f0(prm)
    {    prm();    }
    function f1()
    {    alert("f1");    }
    function f2()
    {    alert("f2");    }
   
    f0(f1);
    f0(f2);
   
</script>

    d'autres syntaxes sont possibles....

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
3
cs_Jbs106 Messages postés 32 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 27 avril 2010
27 avril 2008 à 22:31
setTimeout('refresh_div2('+fonction+')', 250);
3
cs_Jbs106 Messages postés 32 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 27 avril 2010
27 avril 2008 à 22:12
Merci bien.
J'ai d'autre petit problème...
Voici un extrait de code :
 function refresh_div2(fonction)
{
    var xhr_object = null;
    if(window.XMLHttpRequest) // Firefox
       xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // Internet Explorer
       xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else { // XMLHttpRequest non supporté par le navigateur
       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
       return;
    }
   
    xhr_object.open('GET','#', true);
    xhr_object.onreadystatechange = function()
    {
        if(xhr_object.readyState == 4)
        {   
            fonction();
        }
    };
    xhr_object.send(null);
    setTimeout('refresh_div2(fonction)', 250);
}
Le setTimeout() ne passe pas avec "fonction", y aurait-il une solution pour que ça passe?

Bultez, je souhaiterai que tu me proposes une solution avec un tableau de fonction, est-ce possible??

Peux-tu me montré quelques syntaxe ssur le passage d'une fonction en paramètre dans une fonction..?

Merci d'avance
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
28 avril 2008 à 09:32
>>Le setTimeout() ne passe pas avec "fonction"
        je préfère ( et je ne suis pas le seul ) :
            setTimeout( function() { refresh_div2(fonction); }, 250 );

>>un tableau de fonction, est-ce possible??
    tout est toujours possible.   parfois c'est pas simple, parfois ça vaut pa le coup...
    pour quel usage ?   pas trop compris "tableau de fonctions", dans quel but ?

>>Peux-tu me montré quelques syntaxes sur le passage d'une fonction en paramètre dans une fonction.
    celle-ci ne te convient pas ?   rechercher et/ou essayer, tu devrais trouver seul.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0