Вы создаете foo
как функцию, которая возвращает другую функцию.Каждый раз, когда вы выполняете foo()
, он возвращает функцию.
foo(); // returns a function, but appears to do nothing
alert(foo) // prints definition of foo, which is the complete function body
alert(foo()) // shows you the function body of the function returned by foo
foo(); // returns a function, but appears to do nothing
Чтобы запустить anotherFunctionToRun
, вам нужно будет выполнить возвращенную функцию:
var anotherFoo = foo();
anotherFoo(); // should execute anotherFunctionToRun
Или просто нене оборачивайте код data["callback"]
в функцию, возвращающую функцию для начала.