转自:http://www.runoob.com/nodejs/nodejs-module-system.html

在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);

28.Node.js 函数和匿名函数相关推荐

  1. js中的匿名函数和匿名自执行函数

    1.匿名函数的常见场景 js中的匿名函数是一种很常见的函数类型,比较常见的场景: <input type="button" value="点击" id=& ...

  2. 杂七杂八JS :深入理解 函数、匿名函数、自执行函数

    基础概念:定义函数的方式   一般定义函数有两种方式:     1:函数的声明     2:函数表达式 函数的声明 如下代码就是函数声明的代码结构: function sum(x,y){alert(x ...

  3. js中的匿名函数的作用以及用法讲解

    匿名函数顾名思义指的是没有名字的函数,在实际开发中使用的频率非常高!也是学好JS的重点. 释义:匿名函数,就是没有实际名字的函数. 小试牛刀,首先我们声明一个普通函数: //声明一个普通函数,函数的名 ...

  4. JS函数:具名函数、匿名函数、自执行函数

    一.具名函数 具名函数,故名思意就是有名字的函数,具名函数一般是我们定义的最多的一种 // 函数 function fn() {console.log('我是具名函数')console.log('看, ...

  5. ajax回调方法名使用什么事件,ajax的回调函数和匿名函数

    1.什么是js回调函数 一. 回调函数的作用 js代码会至上而下一条线执行下去,但是有时候我们需要等到一个操作结束之后再进行下一个操作,这时候就需要用到回调函数. 二. 回调函数的解释 因为函数实际上 ...

  6. day13-递归函数、匿名函数、内置函数

    一 什么是函数递归 函数递归调用(是一种特殊的嵌套调用):在调用一个函数的过程中,又直接或间接地调用了该函数本身(也叫递归调用) 1 #直接调用本身 2 def f1(): 3 print('from ...

  7. 三元表达式、列表推导式、生成器表达式、递归、内置函数、匿名函数

    一.三元表达式 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 二.列表推导式和生成器表达式 #老 ...

  8. python自动化_day4_迭代器生成器内置函数和匿名函数

    什么是可迭代的 含有__iter__方法的就是可迭代的: python 可迭代对象--Iterable Python中经常使用for来对某个对象进行遍历,此时被遍历的这个对象就是可迭代对象, 像常见的 ...

  9. python - - 函数 - - 内置函数和匿名函数

    目录 内置函数 匿名函数 本章小结 相关练习题 1,内置函数 python里的内置函数.截止到python版本3.6.2,现在python一共为我们提供了68个内置函数. Built-inFuncti ...

  10. 箭头函数,匿名函数,为什么用?怎么用?有什么不一样?使用场景是什么?

    箭头函数的使用和一些特性 JS中的箭头函数用=>来标识.箭头函数有两个主要的优点: 更简短的函数: 更直观的作用域和this的绑定(不绑定this) 因为这些优点,箭头函数比起其他形式的函数声明 ...

最新文章

  1. 如何让fragment每次都重新加载_每次都能正确判罚丨网球是如何电子化的
  2. 初探WCF 如何在配置文件中指定Address?
  3. android 系统gpu 调试_[RK3288][Android6.0] 调试笔记 --- 读取当前DDR和GPU频率方法
  4. cogs 539. 牛棚的灯
  5. 自动驾驶的一些专业术语
  6. 为什么 JavaScript 的 this 要这么用?
  7. java ee的小程序_用微服务和容器替换旧版Java EE应用程序服务器
  8. protected访问权限_复习封装与访问控制
  9. 树状数组维护区间和的模型及其拓广的简单总结
  10. JavaScript 刷新当前页面
  11. ERP通用存储过程封装(三)
  12. 不修改代码就能优化ASP.NET网站性能的一些方法
  13. pip更新出问题后再输入报No module named ‘pip‘错怎么处理
  14. C# Speech学习笔记(三)
  15. Missing artifact com.oracle:ojdbc6:jar:11.2.0.3 Maven中不能引入ojdbc解决方法,错误
  16. 【EOS】1.环境搭建
  17. oracle lookup函数,LOOKUP函数用法全解(上)——LOOKUP函数的5种用法
  18. 《操作系统真象还原》——导读
  19. 服务器里的系统盘是什么意思,云服务器系统盘是什么意思
  20. 状压DP例题(种花小游戏+广场铺砖)

热门文章

  1. 将DataFrame数据如何写入到Hive表中
  2. SQL 调试:无法启动 T-SQL 调试。未能附加到 SQL Server 进程
  3. 一起谈.NET技术,C# 中奇妙的函数之ToLookup
  4. 举例介绍活动目录的优势
  5. 14/100. Merge Two Sorted Lists
  6. java基础File的简单使用记录
  7. Python内置函数(62)——exec
  8. Sql Server 在数据库中所有表所有栏位 找出匹配某个值的脚本(转)
  9. readUnsignedInt () 自动移动字节流位置,和.net是一样的
  10. Geodatabase中基于规则的拓扑关系管理机制