Partage
  • Partager sur Facebook
  • Partager sur Twitter

Appeler une fonction via une variable contenant son nom

Sujet résolu
    9 juillet 2010 à 16:02:37

    Bonjour

    Je voudrais créer un système de "callback". Dans mon script, j'ai une variable qui contient un nom de fonction. Exemple :

    function helloWorld()
    {
        alert('Hello world !');
    }
    
    var fct = 'helloWorld';
    

    J'aimerais, à partir de cette variable, invoquer la méthode qu'elle contient. Est-ce possible ?

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      9 juillet 2010 à 17:18:02

      Soit t'utilise eval, soit tu fais plein de condition du style :
      if(fct=='helloWorld') helloWorld() etc...
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        9 juillet 2010 à 17:22:55

        Citation : T'iZero

        Soit t'utilise eval, soit tu fais plein de condition du style :
        if(fct=='helloWorld') helloWorld() etc...



        ou tu te pends aussi ça marche pas mal.


        Pour ça (et la plupart du reste) eval c'est mal.

        l'idée c'est de faire de toutes ces fonctions des méthodes d'un objet.
        var mesFonctions = {
          helloWorld : function () {
        
          }
        };
        
        // ensuite
        var fct = "helloWorld";
        mesFonctions[fct]();
        


        Y'a une autre méthode pour se passer de l'objet mais c'est très moche et mal aussi.


        ( edit )
        http://www.siteduzero.com/forum-83-519 [...] html#r4971804
        • Partager sur Facebook
        • Partager sur Twitter
          9 juillet 2010 à 17:51:23

          Merci ça fonctionne. :)

          Petite question au passage. Dans l'objet, que je mette le nom des callbacks entre guillemets ou pas ne change rien. Pourquoi ? Y a-t-il une solution à préférer ?
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            9 juillet 2010 à 17:54:29

            les deux notations marchent, y'a rien de mieux que l'autre. C'est juste que si tu veux des espaces, des caractères spéciaux ou des mots réservés tu est obligé de mettre des quotes. en gros tout ce qui respecte pas les conventions de nomage des variables JS, faut mettre des quotes.

            {maFonction: function () {}, "Salut les copain c'est moi!" : function () {}};
            • Partager sur Facebook
            • Partager sur Twitter
              9 juillet 2010 à 18:00:02

              Ah ok merci, c'est bon à savoir :)
              • Partager sur Facebook
              • Partager sur Twitter

              Appeler une fonction via une variable contenant son nom

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown