Frage

Hier ist das Problem - ich weiß Funktion nach Name (und diese Funktion bereits Formular ein externes Skript geladen wurde), aber ich weiß nicht eine tatsächliche Funktion Objekt Erfolg haben für mich zu rufen. Normalerweise würde ich eval (function_name + „(arg1, arg2)“) nennen, aber in meinem Fall muss ich es, ein Objekt zu übergeben, kein String. Einfaches Beispiel:

var div = document.getElementById('myDiv')
var func = "function_name" -- this function expects a DOM element passed, not id

Wie führe ich diese Funktion?

Danke! Andrey

War es hilfreich?

Lösung

Es sollte möglich sein, die Funktion Objekt aus der obersten Ebene window zu bekommen. Z.

var name = "function_name";
var func = window[name];
func( blah );

Andere Tipps

Verwenden Sie eval, es ist böse (siehe nur einen Buchstaben Differenz) Sie können einfach tun:

var div = document.getElementById('myDiv');
var result = window[function_name](div);

Dies ist möglich, weil Funktionen erstklassige Objekte in Javascript sind, so können Sie sie acces, wie Sie mit anyother Variable konnte. Beachten Sie, dass dies auch für Funktionen arbeiten, die Strings oder etwas als Paramter wollen:

var result = window[another_function_name]("string1", [1, "an array"]);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top