我正在努力解决这个问题。我正在读一本书,示例代码工作得很好,但我无法理解如何。第一类功能似乎扭曲和转动,将自己内翻,像魔术一样进出彼此。它是这样的:
var data = {};
data["value1"] = fancyMethod.Value1 ;
data["value2"] = fancyMethod.Value2 ;
data["value3"] = fancyMethod.Value3 ;
getGoing( complexFunction , data);
function getGoing( complexFunction , data){
function setUpComplexFunction(param1, param2){
var param3 = param1.someValue ;
complexFunction(param1, param2, param3, data);
}
importantFunction(GetGoing);
}
重要的是功能()是设置用于检索提供它的函数的所有参数的所有进程的那个。
所以只有在调用importantFunction()之后才能获得所有参数。当在调用importantFunction()之前无法获取其参数时,getGoing()内的所有其他代码是如何运行的?
上面是代码的简化,只是为了展示我正在努力的概念。
实际代码:
importantFunction()实际上是http.createServer(onRequest).listen(8888);
和getGoing()是一个运行服务器的路由器和请求处理程序的函数。来自PHP我发现奇怪的是,在服务器启动之前,似乎所有的请求和URL以及请求处理程序都被解释了。
来源: https://github.com/manuelkiessling/nodebeginner.org/tree/master/code/application
我想有一天这一切对我来说都是显而易见的,但我想知道现在有没有人用一种简单的方法来解释它。
答案 0 :(得分:0)
importantFunction
(您没有包含其定义)可能会调用GetGoing
。在那时它可以通过它喜欢的任何参数。
此外,第一次调用GetGoing
时,此行会调用它:
getGoing( complexFunction , data);
...根本不依赖importantFunction
。