>>372の件ですが
function test(){
console.log('function called');
}
var fnName = "test";
eval(fnName+'()');

で出来ました
evalは使うべきでないものという先入観があってすっかり忘れていましたが、
本当に使うべきではないのかをよく検討すべきですよね?
外からやってきたダーティーな値を引数にする場合や
パフォーマンスがよほどシビアな場合以外は
特に使っても問題ないと思います
どうなのでしょうか?