Node.js函数
在JS语言中,一个函数可以作为另一个函数的参数。可以先定义在传递,也可以直接使用匿名函数进行传递。
Node.js中函数的使用与JS类似,基本差不多。
下面写两个例子。
先定义函数,在进行传递
// 定义函数say
function say(val){
console.log(val)
}
// 我们将say函数作为execute第一个参数进行传递,这样以来,say函数就变成了execute中的本地变量someFunction
// exectue可以通过调用someFunction()来使用say函数,say函数有一个变量,在调用的时候我们可以传递一个变量。
function execute(someFunction, val) {
someFunction(val)
}
execute(say,'思否')
这个例子就是先定义函数,然后将定义的函数作为参数给另一个函数使用。
还有一种就是直接使用匿名函数
function execute(somefunction, val) {
somefunction(val)
}
execute(function(val){console.log(val)}, '思否')
这种方式就是直接使用匿名函数进行传递,我们在execute接收第一个参数的地方直接定义了我们准备传参的函数。
两种方式都可以,相比较先定义在传递,匿名函数写起来更简洁,如果有一些不需要重复调用的场景,可以使用这种方式。
了解函数传递以后,我们在来看函数传递如何让HTTP服务器工作的。
// 匿名函数传递
const http = require('http')
http.createServer((request , response) => {
response.writeHead(200, {'Content-Type': 'text/plain'})
response.write('Hello World')
response.end()
}).listen(8888)
http.createServer方法中第一个参数我们直接以匿名函数的方式直接书写。
const http = require('http')
// 先定义在传递
function onRequest(request, response) {
response.writeHead(200,{'Content-Type': 'text/plain'})
response.write('Hello sifou.com')
response.end()
}
http.createServer(onRequest).listen(8888)
这段代码我们先定义函数onRequest,然后在进行传递。两种方法都可以