質問

ここで問題です - 私は(とその機能がすでに外部スクリプトを形成するロードされている)の名前で機能を知っているが、私は私が呼び出すための実際の関数オブジェクトの無駄がありません。通常、私は(FUNCTION_NAME +「(ARG1、ARG2)」)にevalを呼ぶだろうが、私の場合、私はそれをオブジェクトではなく、文字列を渡す必要があります。 簡単な例:

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

どのように私はこの機能を実行できますか?

ありがとう! アンドレイ

役に立ちましたか?

解決

あなたはトップレベルのwindowから関数オブジェクトを取得することができるはずです。例えばます。

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

他のヒント

evalを使用しないでください、悪it's(一つだけの文字の違いを参照してください) あなたは、単に行うことができます:

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

の機能はJavaScriptでファーストクラスのオブジェクトであるので、これは可能ですので、あなたは、任意の他の変数との可能性として、あなたはそれらをアクセスもできます。これもPARAMTERのように文字列か何かをしたい機能のために働くことに注意してください:

var result = window[another_function_name]("string1", [1, "an array"]);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top