Variablenfunktionen in JavaScript

  1. koli.bri

    koli.bri Thread Starter

    Hallo ihr fleißigen Scriptersleut'

    Ich hab vor kurzem die Variablenfunktionen von PHP kennengelernt.
    Geniale Sache, wie ich finde.

    Doch gibt es etwas vergleichbares auch für JavaScript? In SelfHTML und vie Google hab ich nichts gefunden...

    Hintergrund der Geschichte:
    In meinem derzeitigem Projekt tauchen eine Menge http-Requests auf.
    der Requestfunktion in JavaScript wird dabei immer noch der Name der Funktion mitgegeben,

    PHP:
    function macheRequest(url,handle_funktion){
    /*
     *  Requestkram
     */
     
    switch(handle_funktion){
      case 
    "ladebildnach":
        
    handle_ladebildnach(http_request.responseText);
      break;
      case 
    "speicherindb":
        
    handle_speicherindb(http_request.responseText);
      break;
    /*
     *
     */

     
    }
    }

    funktion handle_ladebildnach(vari){
    // Anzeigen des Bilds
    }

    function 
    handle_speicherindb(vari){
    // Rückmeldung geben
    }
    Ideal wäre ja sowas wie
    PHP:
    function macheRequest(url,handle_funktion){
    /*
     *  Requestkram
     */

      
    handle_funktion(http_request.ResponseText);

    /*
     *
     */

     
    }
    }
    Also, gibt es außer einer EVAL()-Lösung etwas?

    gruß
    Lukas
     
    koli.bri, 02.02.2007
    #1
  2. der_Kay

    der_Kay MacUser Mitglied

    Mitglied seit:
    02.09.2004
    Beiträge:
    1.685
    Zustimmungen:
    8
    Ja, gibt es. "Impliziter Funktionsaufruf" und "Assoziative Arrays mit Objekten" sind die Stichworte:
    Extending JavaScript with Function Pointers
    Simulierte assoziative Arrays in JavaScript

    PHP:
    <html>
    <
    head>
    <
    script type="text/javascript">
    function 
    sag_hallo () 

        
    document.forms['form0'].elements['label'].value="Hallo";     
    }

    function 
    sag_ciao () 

        
    document.forms['form0'].elements['label'].value="Ciao"
    }

    var 
    func_array = new Array();
    func_array ['Hallo']=sag_hallo;
    func_array ['Ciao']=sag_ciao;

    function 
    choose_function_by_string function_name_as_a_string )
    {
        var 
    func_pointer func_array[function_name_as_a_string];
        if ( 
    undefined != func_pointer )
            
    func_pointer();    
        else
            
    alert ("Funktion \""
                
    function_name_as_a_string 
                
    +"\" gibt es nicht!");
    }
    </script>
    </head>

    <body>

    <a href="javascript:choose_function_by_string('Hallo')">Rufe &quot;sag_hallo()&quot; auf</a>
    <br>
    <a href="javascript:choose_function_by_string('Ciao')">Rufe &quot;sag_ciao() &quot; auf</a>
    <br>
    <a href="javascript:choose_function_by_string('Quark')">Rufe &quot;quark()&quot; auf</a>
    <br>&nbsp;
    <form name="form0">
    <input type="text" name="label" length="80">
    </form>
    </body>
    </html>
    p.s.: Die JavaScript-EventHandler funktionieren alle so.
     
    der_Kay, 13.02.2007
    #2
  3. koli.bri

    koli.bri Thread Starter

    Wenn auch was spät:
    Vielen lieben Dank dafür! :D
    Funktioniert Tadellos und einfach isses auch, wenn man es verstanden hat!

    gruß
    Lukas
     
    koli.bri, 23.02.2007
    #3
Die Seite wird geladen...
Ähnliche Themen - Variablenfunktionen JavaScript
  1. nicoch
    Antworten:
    2
    Aufrufe:
    284
    nicoch
    11.04.2017
  2. beatles
    Antworten:
    11
    Aufrufe:
    510
    beatles
    24.02.2017
  3. Kopfkissen
    Antworten:
    13
    Aufrufe:
    720
    Olivetti
    25.02.2017
  4. leo-magic
    Antworten:
    0
    Aufrufe:
    341
    leo-magic
    27.05.2016