Возможно, более безопасный способ сделать что-то вроде этого (псевдокод только здесь):
function executer(functionName)
{
if (functionName === "blammo")
{
blammo();
}
else if (functionName === "kapow")
{
kapow();
}
else // unrecognized function name
{
// do something.
}
Для этого вы можете использовать оператор switch (кажется, это лучшая конструкция):
switch (functionName)
{
case "blammo":
blammo();
break;
case "kapow":
kapow();
break;
default:
// unrecognized function name.
}
Вы можете оптимизировать это, создав массив имен функций, выполнив поиск в массиве нужного имени функции, а затем выполнив значение в массиве.