(Javascript)为什么没有参数function

这是一个NodeJS的东西,代码是:

var http = require("http"); function onRequest(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); } http.createServer(onRequest).listen(8888); 

我的问题是如何在最后一行,函数onRequest不采取参数..我是新来的Javascript,但不是onRequest应该采取两个参数定义在函数中? 任何人都可以帮我吗? 我被困了一个小时:(

onRequest函数的执行需要2个参数。

你的最后一行:

 http.createServer(onRequest).listen(8888); 

实际上并没有执行onRequest,虽然我可以看到你为什么会这样做。 它将对onRequest函数的引用传递给http.createServer函数/方法。

createServer将保存一个指向你的onRequest函数的指针,然后当请求进入服务器时,它将执行onRequest。 该执行将包括请求和响应参数。

有关详细信息,本文对这种模式(称为callback)给出了相当简单明了的解释。 它通常使用asynchronous编程,但不一定。

http://recurial.com/programming/understanding-callback-functions-in-javascript/

你实际上并没有调用这个方法。 你告诉createServer它的requestListenercallback函数是什么。

从node.js文档( http://nodejs.org/api/http.html#http_http_createserver_requestlistener ):

http.createServer([requestListener])

返回一个新的Web服务器对象。

requestListener是一个自动添加到“请求”事件的函数。