28.Node.js 函数和匿名函数
转自: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 函数和匿名函数相关推荐
- js中的匿名函数和匿名自执行函数
1.匿名函数的常见场景 js中的匿名函数是一种很常见的函数类型,比较常见的场景: <input type="button" value="点击" id=& ...
- 杂七杂八JS :深入理解 函数、匿名函数、自执行函数
基础概念:定义函数的方式 一般定义函数有两种方式: 1:函数的声明 2:函数表达式 函数的声明 如下代码就是函数声明的代码结构: function sum(x,y){alert(x ...
- js中的匿名函数的作用以及用法讲解
匿名函数顾名思义指的是没有名字的函数,在实际开发中使用的频率非常高!也是学好JS的重点. 释义:匿名函数,就是没有实际名字的函数. 小试牛刀,首先我们声明一个普通函数: //声明一个普通函数,函数的名 ...
- JS函数:具名函数、匿名函数、自执行函数
一.具名函数 具名函数,故名思意就是有名字的函数,具名函数一般是我们定义的最多的一种 // 函数 function fn() {console.log('我是具名函数')console.log('看, ...
- ajax回调方法名使用什么事件,ajax的回调函数和匿名函数
1.什么是js回调函数 一. 回调函数的作用 js代码会至上而下一条线执行下去,但是有时候我们需要等到一个操作结束之后再进行下一个操作,这时候就需要用到回调函数. 二. 回调函数的解释 因为函数实际上 ...
- day13-递归函数、匿名函数、内置函数
一 什么是函数递归 函数递归调用(是一种特殊的嵌套调用):在调用一个函数的过程中,又直接或间接地调用了该函数本身(也叫递归调用) 1 #直接调用本身 2 def f1(): 3 print('from ...
- 三元表达式、列表推导式、生成器表达式、递归、内置函数、匿名函数
一.三元表达式 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 二.列表推导式和生成器表达式 #老 ...
- python自动化_day4_迭代器生成器内置函数和匿名函数
什么是可迭代的 含有__iter__方法的就是可迭代的: python 可迭代对象--Iterable Python中经常使用for来对某个对象进行遍历,此时被遍历的这个对象就是可迭代对象, 像常见的 ...
- python - - 函数 - - 内置函数和匿名函数
目录 内置函数 匿名函数 本章小结 相关练习题 1,内置函数 python里的内置函数.截止到python版本3.6.2,现在python一共为我们提供了68个内置函数. Built-inFuncti ...
- 箭头函数,匿名函数,为什么用?怎么用?有什么不一样?使用场景是什么?
箭头函数的使用和一些特性 JS中的箭头函数用=>来标识.箭头函数有两个主要的优点: 更简短的函数: 更直观的作用域和this的绑定(不绑定this) 因为这些优点,箭头函数比起其他形式的函数声明 ...
最新文章
- 如何让fragment每次都重新加载_每次都能正确判罚丨网球是如何电子化的
- 初探WCF 如何在配置文件中指定Address?
- android 系统gpu 调试_[RK3288][Android6.0] 调试笔记 --- 读取当前DDR和GPU频率方法
- cogs 539. 牛棚的灯
- 自动驾驶的一些专业术语
- 为什么 JavaScript 的 this 要这么用?
- java ee的小程序_用微服务和容器替换旧版Java EE应用程序服务器
- protected访问权限_复习封装与访问控制
- 树状数组维护区间和的模型及其拓广的简单总结
- JavaScript 刷新当前页面
- ERP通用存储过程封装(三)
- 不修改代码就能优化ASP.NET网站性能的一些方法
- pip更新出问题后再输入报No module named ‘pip‘错怎么处理
- C# Speech学习笔记(三)
- Missing artifact com.oracle:ojdbc6:jar:11.2.0.3 Maven中不能引入ojdbc解决方法,错误
- 【EOS】1.环境搭建
- oracle lookup函数,LOOKUP函数用法全解(上)——LOOKUP函数的5种用法
- 《操作系统真象还原》——导读
- 服务器里的系统盘是什么意思,云服务器系统盘是什么意思
- 状压DP例题(种花小游戏+广场铺砖)
热门文章
- 将DataFrame数据如何写入到Hive表中
- SQL 调试:无法启动 T-SQL 调试。未能附加到 SQL Server 进程
- 一起谈.NET技术,C# 中奇妙的函数之ToLookup
- 举例介绍活动目录的优势
- 14/100. Merge Two Sorted Lists
- java基础File的简单使用记录
- Python内置函数(62)——exec
- Sql Server 在数据库中所有表所有栏位 找出匹配某个值的脚本(转)
- readUnsignedInt () 自动移动字节流位置,和.net是一样的
- Geodatabase中基于规则的拓扑关系管理机制