Funktionen durch dynamische Strings aufrufen
Bernhard Schussek
- javascript
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?
hallo,
eval() http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#eval könnte dir hier weiterhelfen.
mit freundlichen grüßen
dimitri rettig
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!
Aber hier funktioniert eval() natürlich tausendmal besser!
eval is evil.
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