ylbtech-Node.js:函数
1.返回顶部
1、

Node.js 函数

在JavaScript中,一个函数可以作为另一个函数的参数。我们可以先定义一个函数,然后传递,也可以在传递参数的地方直接定义函数。

Node.js中函数的使用与Javascript类似,举例来说,你可以这样做:

function say(word) {
console.log(word);
} function execute(someFunction, value) {
someFunction(value);
} execute(say, "Hello");

以上代码中,我们把 say 函数作为execute函数的第一个变量进行了传递。这里传递的不是 say 的返回值,而是 say 本身!

这样一来, say 就变成了execute 中的本地变量 someFunction ,execute可以通过调用 someFunction() (带括号的形式)来使用 say 函数。

当然,因为 say 有一个变量, execute 在调用 someFunction 时可以传递这样一个变量。


匿名函数

我们可以把一个函数作为变量传递。但是我们不一定要绕这个"先定义,再传递"的圈子,我们可以直接在另一个函数的括号中定义和传递这个函数:

function execute(someFunction, value) {
someFunction(value);
} execute(function(word){ console.log(word) }, "Hello");

我们在 execute 接受第一个参数的地方直接定义了我们准备传递给 execute 的函数。

用这种方式,我们甚至不用给这个函数起名字,这也是为什么它被叫做匿名函数 。


函数传递是如何让HTTP服务器工作的

带着这些知识,我们再来看看我们简约而不简单的HTTP服务器:

var http = require("http");

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

现在它看上去应该清晰了很多:我们向 createServer 函数传递了一个匿名函数。

用这样的代码也可以达到同样的目的:

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);
2、
2.返回顶部
 
3.返回顶部
 
4.返回顶部
 
5.返回顶部
1、
2、
 
6.返回顶部
 
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

最新文章

  1. 安卓app开发笔记
  2. [Unity游戏开发]向量在游戏开发中的应用(一)
  3. undefined method `environment' for nil:NilClass when importing Bootstrap into rails
  4. C#:如何解决WebBrowser.DocumentCompleted事件的多次调用
  5. 【液晶模块系列基础视频】1.3.iM_TFT30模块简介
  6. mac os 10.10上安装my eclipse显示virtual memory不足,解决方案
  7. 关于Hadoop之父Doug Cutting
  8. SharePoint 2013版本功能对比介绍
  9. JavaScript修改表中的内容
  10. QJ系列笔记
  11. 解决Fileupload 在IE 10 中需要双击的问题
  12. linux fdisk
  13. jquery 获取及设置input各种类型的值 (转)
  14. zabbix客户端日志报错no active checks on server [192.168.3.108:10051]: host [192.168.3.108] not found
  15. 有关Struts下载文件时报错问题
  16. tesseract 中文二次训练
  17. QString 乱谈(3)-Qt5与中文
  18. PHP时间戳 strtotime()使用方法和技巧
  19. MR案例:链式ChainMapper
  20. IIS7下设置上传大小的限制

热门文章

  1. 【VB】api实现窗口最小化
  2. 各个数据库中,查询前n条记录的方法
  3. Maven常见异常及解决方法
  4. 在Unity中客户端与服务器端的2种通信方式(Socker)
  5. 如何查看Linux的CPU负载
  6. Ubuntu下解压(unzip)乱码的解决方法
  7. 如果说需要注册数据中心,这样才能使用demo部署数据中心license证需要申请,使用云之间-工作流程......
  8. eas之缓存清理
  9. Es6获取数据
  10. 洛谷P1316 丢瓶盖【二分+递推】