2013-07-09 69 views
1

這是一個東西的NodeJS,代碼:(JavaScript)的爲什麼沒有功能拍攝參數

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應該採取2函數中定義的參數?任何人都可以幫助我嗎?我已經堅持了一個小時:(

+2

onRequest確實需要兩個參數,請求和響應。 createServer接受一個參數,即事件函數。 – dandavis

+0

功能是對象。 'onRequest'是一個函數對象。 'onRequest()'調用'onRequest'函數並返回它的值。 – elclanrs

+0

@john,任何答案有幫助嗎? – Brandon

回答

1

執行onRequest函數需要2個參數。

你的最後一行:

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

實際上並不執行的onRequest,但我可以看到你爲什麼會認爲它。它將對onRequest函數的引用傳遞給http.createServer函數/方法。

createServer將保存一個指向你的onRequest函數的指針,然後當請求進入服務器時,它將執行onRequest。該執行將包含請求和響應參數。

有關詳細信息,本文將對此模式進行簡單明瞭的說明,稱爲回調。它通常用於異步編程,但不一定。

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

相關問題