我正在用coffeescript編寫一個基本的node.js web服務器。當我寫:coffeescript:在調用之前定義回調
server.listen(3000, listener)
listener =() ->
console.log 'server listening on port 3000'
它啓動服務器,但不打印消息。所以我認爲回調沒有被調用。另一方面,當我這樣做時:
listener =() ->
console.log 'server listening on port 3000'
server.listen(3000, listener)
消息打印在控制檯上。
爲什麼回調會在調用之前被定義,而不是如果定義之後呢?
相關:http://stackoverflow.com/questions/336859/javascript-var-functionname-function-vs-function-functionname。 CoffeeScript不會生成命名函數(類之外)。 – zdyn