2012-03-26 8 views
1

可能性の重複:
Alternatives to eval() for multiple nested objectsオルタナティブ()

私はeval()に代わるものを見つけようとしています。私はそれを文字列から関数を呼び出すために使用します。

私はwindow["myFunction"](args)を認識していますが、私の機能は別のオブジェクトの中にあります。

たとえば、"myObject.anotherOne.myFunction"または"myObject.myFunction"またはそれ以上の深さにすることができます。

誰かが考えていますか?

+0

ここで探しているものは本当にわかりません... 'eval() 'は間違っていますか?あなたは何をしようとしているのですか? –

+0

これは重複していません。リンクされた重複はオブジェクト値についてです、私は関数を呼び出す必要があります。確かに私の目標を達成するためのアイデアを提供しますが、私はまだ完了していません – JiDW

答えて

1

関数名を渡してevalを使う代わりに、関数を直接渡すだけです。

var toCall = function() { 
    console.log("toCall was called"); 
}; 

// Call via eval 
var evalSample = function (theName) { 
    ... 
    eval(theName); 
} 
evalSample('toCall'); 

// Call via callback 
var funcSample = function (theFunc) { 
    ... 
    theFunc(); 
}; 
funcSample(toCall); 
+0

私の場合、関数名を渡すことはオプションではありません。それは私が持っているすべてです。 – JiDW

関連する問題