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

转载于:https://www.cnblogs.com/navysummer/p/8458668.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398635.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Entity Framework 4.0中使用 Repository 和 Unit of Work 模式

【原文地址】Using Repository and Unit of Work patterns with Entity Framework 4.0 【原文发表日期】 16 June 09 04:08 PM 如果你一直在关注这个博客的话,你知道我最近在讨论我们加到Entity Framework 4.0中的POCO功能的方方面面,新加的POCO支持促成…

Css3之基础-5 Css 背景、渐变属性

一、CSS 背景概述背景属性的作用- 背景样式可以控制 HTML 元素的背景颜色、背景图像等 - 背景色- 设置单一的颜色作为背景- 背景图像- 以图片作为背景- 可以设置图像的位置、平铺、尺寸等二、CSS 背景属性背景色 background-color - 属性用于为元素设置背景色- 接受任何合法的颜…

[Angularjs]锚点操作服务$anchorScroll

写在前面 有个单页应用的项目中,需要通过锚点进行页面的定位。但angularjs的路由会出现跟锚点冲突,angularjs会将锚点当成路由进行解析,造成跳转到这个页面,而我们需要的只是跳转到当前的锚点位置。angularjs的路由格式#/home/en。…

机器学习的练功方式(十)——岭回归

文章目录十 岭回归10.1 岭回归的接口10.2 岭回归处理房价预测十 岭回归 岭回归是线性回归的改进,有时候迫不得已我们的参数确实不能少,这时候过拟合的现象就可能发生。为了避免过拟合现象的发生,既然不能从减少参数上面下手,那我…

js产生随机数

<script>document.write(parseInt(10*Math.random()));  //输出0&#xff5e;10之间的随机整数document.write(Math.floor(Math.random()*101));  //输出1&#xff5e;10之间的随机整数function RndNum(n){var rnd"";for(var i0;i<n;i)rndMath.floor(Math…

JS实现在输入框内输入@时,邮箱账号自动补全

<!DOCTYPE HTML><html lang"en"><head><meta charset"utf-8"/><title>邮箱自动补全</title><style type"text/css">.wrap{width:200px;margin:0 auto;}h1{font-size:36px;text-align:center;line-hei…

OpenCV修养(一)——引入

文章目录1 引入1.1 OpenCV是啥1.2 OpenCV——Python1 引入 1.1 OpenCV是啥 OpenCV是一个基于Apache2.0许可&#xff08;开源&#xff09;发行的跨平台计算机视觉计算机视觉和机器学习软件库&#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量级而且高…

动态创建 Plist 文件

简介 Property List&#xff0c;属性列表文件&#xff0c;它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist &#xff0c;因此通常被称为 plist文件&#xff0c;文件是xml格式的。 写入plist文件 在开发过程中&#xff0c;有时候需要把程序的一些配置保存下…

[Everyday Mathematics]20150101

(1). 设 $f(x),g(x)$ 在 $[a,b]$ 上同时单调递增或单调递减, 试证: \[ (b-a)\int_a^b f(x)g(x)\mathrm{\,d}x \geq \int_a^b f(x)\mathrm{\,d}x\cdot \int_a^b g(x)\mathrm{\,d}x. \] (2). 试证: \[ c\in (0,1)\Rightarrow \int_c^1 \dfrac{e^t}{t}\mathrm{\,d}t \geq e\cdot …

被解放的姜戈08 远走高飞

作者&#xff1a;Vamei 出处&#xff1a;http://www.cnblogs.com/vamei 转载请先与我联系。 之前在单机上实现了一个Django服务器&#xff08;被解放的姜戈07 马不停蹄&#xff09;&#xff0c;现在我们可以把这个服务器推上一个云平台。这里我选择使用阿里云。 看着复仇的火焰…

OpenCV修养(二)——OpenCV基本操作

文章目录2 OpenCV基本操作2.1 IO操作2.2 图像基本操作2.2.1 图像绘制2.2.1.1 绘制直线2.2.1.2 绘制圆形2.2.1.3 绘制矩形2.2.1.4 添加文字2.2.1.5 试手2.2.2 获取/修改图像的像素点2.2.3 获取图像属性2.2.4 图像通道拆分/合并2.2.5 色彩空间改变2.2.6 边界填充2.3图像算数操作2…

ylbtech-LanguageSamples-Porperties(属性)

ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Porperties(属性)1.A&#xff0c;示例(Sample) 返回顶部“属性”示例 本示例演示属性为何是 C# 编程语言必不可少的一个组成部分。它演示了如何声明和使用属性。有关更多信息&#xff0c;请参见属性&#xff08;C# 编…

Altium Designer敷铜的规则设定

InPolygon 这个词是铺铜对其他网络的设置,铺铜要离其他网络远点,因为腐蚀不干净会对 电路板有影响... 问题一:: 如下图所示&#xff0c;现在想让敷铜与板子边界也就是keepoutlayer的间距小一点&#xff0c;比如0.2MM。而与走线的间距比较大&#xff0c;比如0.8mm。要怎么设置规…

OpenCV修养(三)——图像处理(上)

文章目录致谢3 图像处理&#xff08;上&#xff09;3.1 几何变换3.1.1 图像缩放3.1.2 图像平移3.1.3 图像旋转3.1.4 仿射变换3.2 图像阈值3.3 图像平滑3.3.1 图像噪声3.3.1.1 椒盐噪声3.3.1.2 高斯噪声3.3.2 均值滤波3.3.3 方框滤波3.3.4 高斯滤波3.3.5 中值滤波3.3.6 小结3.4 …

程序员福利各大平台免费接口,非常适用

电商接口 京东获取单个商品价格接口: http://p.3.cn/prices/mgets?skuIdsJ_商品ID&type1 ps:商品ID这么获取:http://item.jd.com/954086.html 物流接口 快递接口: http://www.kuaidi100.com/query?type快递公司代号&postid快递单号 ps:快递公司编码:申通”shentong”…

CF940D Alena And The Heater

思路&#xff1a; 模拟。 实现&#xff1a; 1 #include <bits/stdc.h>2 using namespace std;3 const int INF 1e9;4 int a[100005], n;5 string b;6 int main()7 {8 while (cin >> n)9 { 10 for (int i 0; i < n; i) cin >> a[i]; 11 …

Android工程开发笔记一

Android工程开发笔记<一> ---------------------------------------不同 APP相互调用 activity 1.ComponentName() Intent _Intent new Intent(Intent.ACTION_MAIN); _Intent.setComponent(new ComponentName("com.semp.skipdemo002","com.semp.skipdemo…

机器学习的练功方式(十一)——逻辑回归

文章目录致谢11 逻辑回归11.1 引入11.2 激活函数11.3 损失函数11.4 梯度下降11.5 案例&#xff1a;癌症分类预测致谢 逻辑回归为什么用Sigmoid&#xff1f; - 知乎 (zhihu.com) 逻辑回归中的损失函数的解释_yidiLi的博客-CSDN博客_逻辑回归损失函数 11 逻辑回归 逻辑回归也被称…

ODB——基于c++的ORM映射框架尝试(安装)

这篇博客应该是和之前的重拾cgi一起的。当时为了模仿java的web框架&#xff0c;从页面的模板&#xff0c;到数据库的ORM&#xff0c;都找个对应的库来进行尝试。数据库用的就是ODB&#xff0c;官方网站是http://www.codesynthesis.com/products/odb/。 1、安装 odb是直接提供源…

【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈

【百度地图API】如何制作一张魔兽地图&#xff01;&#xff01;——CS地图也可以&#xff0c;哈哈哈 原文:【百度地图API】如何制作一张魔兽地图&#xff01;&#xff01;——CS地图也可以&#xff0c;哈哈哈摘要&#xff1a; 你玩魔兽不&#xff1f;你知道如何做一张魔兽地图不…