Bernhard Schussek: Funktionen durch dynamische Strings aufrufen

Hallo,

Ich habe folgendes Problem:

Ich will Funktionen anhand von Strings aufrufen, die ich aber dynamisch generiere. Das ganze deshalb, weil ich eine Bibliothek mit einer großen Anzahl Funktionen importiere

Zum Beispiel dazu folgendes Beispiel

function MyFunction () {
  var array;

array=loadClasses();  <-- gibt ("Funktion1","Funktion2","Funktion3") zurück

for(var i=0; i<array.length; i++)
    array[i] ausführen !!!
}

Ich will also in diesem Beispiel die Funktionen Funktion1(), Funktion2() und Funktion3() aufrufen, aber wie geht das?

  1. hallo,

    eval() http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#eval könnte dir hier weiterhelfen.

    mit freundlichen grüßen
       dimitri rettig

    1. Danke dimitri!
      Funktioniert bestens

      Meine 2. Variante wäre gewesen, alle funktionen in einem Array zu speichern, z.b.

      ARRAY["funktion1"]=funktion1;
      ARRAY["funktion1"] ();

      Aber hier funktioniert eval() natürlich tausendmal besser!

      1. Aber hier funktioniert eval() natürlich tausendmal besser!

        eval is evil.

      2. gruss Bernhard

        Meine 2. Variante wäre gewesen, alle funktionen in einem Array zu speichern, z.b.

        ARRAY["funktion1"]=funktion1;
        ARRAY["funktion1"] ();

        Aber hier funktioniert eval() natürlich tausendmal besser!

        noe - beide loesungen sind nicht optimal - eval verstoesst
           ausserdem nicht nur gegen das dogma "eval is evil", sondern
           ist noch dazu unperformant - fuer Deinen hier noch einmal
           aufgefuehrten spezialfall

        for(var i=0; i<array.length; i++)
          array[i] ausführen !!!
        ...
        Ich will also in diesem Beispiel die Funktionen Funktion1(),
        Funktion2() und Funktion3() aufrufen, aber wie geht das?

        empfehle ich diese schreibweise  -->  windowarray[i];

        by(t)e by(t)e - peterS. - pseliger@gmx.net

        --
        sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)