一流的功能 - 他们怎么可能?

时间:2015-07-27 12:34:44

标签: javascript node.js

我正在努力解决这个问题。我正在读一本书,示例代码工作得很好,但我无法理解如何。第一类功能似乎扭曲和转动,将自己内翻,像魔术一样进出彼此。它是这样的:

   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

我想有一天这一切对我来说都是显而易见的,但我想知道现在有没有人用一种简单的方法来解释它。

1 个答案:

答案 0 :(得分:0)

importantFunction(您没有包含其定义)可能会调用GetGoing。在那时它可以通过它喜欢的任何参数。

此外,第一次调用GetGoing时,此行会调用它:

getGoing( complexFunction , data);

...根本不依赖importantFunction