javascript変数の文字列としてメソッドの名前があり、変数への呼び出しの結果を取得したいと思います:
var myMethod = "methodToBeCalled";
var result;
eval("result = "+myMethod+"();")
これは機能し、問題はありません。しかし、このコードは Google Closure Compiler では受け入れられません。どのように変更すれば動作するようになりますか? ありがとう!
編集:
メソッドの名前がオブジェクトの内部にある場合、提案されたソリューションは機能しないようです。たとえば、次のようになります。
var myFunction = function () { return "foo!" }
var myObject = {
itsMethod: function() { return "foo!" }
};
...
var fstMethodToCall = "myFunction"
var sndMethodToCall = "myObject.itsMethod";
...
window[fstMethodToCall](); // foo!
window[sndMethodToCall](); // undefined