Node.js | Function(函數)
簡介
在JavaScript
中,一個函數可以作為另一個函數的參數。我們可以先定義一個函數,然後傳遞,也可以在傳遞參數的地方直接定義函數。
Node.js
中函數的使用與Javascript
類似,舉例來說,你可以這樣做:
1 | function say(word) { |
執行結果如下:
1 | $ node main.js |
以上程式中,我們把say
函數作為execute
函數的第一個變量進行了傳遞。這裡傳遞的不是say
的返回值,而是say
本身!
這樣一來,say
就變成了execute
中的本地變量someFunction
,execute
可以通過調用someFunction()
(帶括號的形式)來使用say
函數。
當然,因為say
有一個變量,execute
在調用someFunction
時可以傳遞這樣一個變量。
匿名函數
我們可以把一個函數作為變量傳遞。但是我們不一定要照這個「先定義,再傳遞」規則,我們可以直接在另一個函數的括號中定義和傳遞這個函數:
1 | function execute(someFunction, value) { |
執行結果如下:
1 | $ node main.js |
我們在execute
接受第一個參數的地方直接定義了我們準備傳遞給execute
的函數。
1 | function(word){ console.log(word) } |
用這種方式,我們甚至不用給這個函數起名字,這也是為什麼它被叫做匿名函數 。
函數傳遞是如何讓HTTP伺服器工作的
我們再來看看我們簡約而不簡單的HTTP
伺服器:
1 | var http = require("http"); |
如上我們向createServer
函數傳遞了一個匿名函數。
如下用這樣的程式也可以達到同樣的目的:
1 | var http = require("http"); |
註:以上參考了
Node.js 函数