@ e-bartek, я думаю, что окно [functionName] не будет работать, если вы находитесь в закрытии, а имя функции является локальным для этого замыкания. Например:
function foo() {
var bar = function () {
alert('hello world');
};
var s = 'bar';
window[s](); // this won't work
}
В этом случае s - это 'bar', но функция 'bar' существует только внутри области действия функции 'foo'. Он не определен в области видимости окна.
Конечно, это на самом деле не отвечает на первоначальный вопрос, я просто хотел вмешаться в этот ответ. Я не верю, что есть способ сделать то, что задал первоначальный вопрос.