当前位置:嗨网首页>书籍在线阅读

19-使用匿名函数

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

3.6.4 使用匿名函数

使用JavaScript实现函数 在本节中,您将创建一个实现函数的MongoDB shell脚本。在本书后面,您将创建函数来创建和操作文档集合。在这个示例中,您将实现一个简单的函数,它接受姓名和城市,并返回一句问候语。这让您能够给这个函数添加参数,并处理返回的字符串。 请按如下步骤来编写一个脚本,它创建一个函数,再调用这个函数多次。 1.确保启动了MongoDB服务器。虽然您不会连接到数据库,但要启动MongoDB shell,必须先启动MongoDB服务器。 2.在文件夹code/hour03中新建一个文件,并将其命名为functions.js。 3.在这个新文件中输入程序清单3.3所示的代码。这些代码定义了一个函数,然后使用不同的参数调用它多次。 4.将这个文件存盘。 5.打开一个控制台窗口,并切换到目录code/hour03。 6.执行命令mongo functions.js以运行第2步和第3步创建的JavaScript文件。程序清单3.4显示了这个脚本的输出。 程序清单3.3 functions.js:在MongoDB shell脚本中创建并调用JavaScript函数 程序清单3.4 functions.js-output:在MongoDB shell脚本中创建并调用JavaScript函数的输出

在前面,您看到的所有函数都是命名函数。在JavaScript中,还可以创建匿名函数,这种函数的优点在于,可在调用其他函数时在传入的参数中直接定义,因此无需正式定义它们。

例如,下面的代码定义了函数doCalc()。它接受三个参数,其中前两个为数字,第三个是一个函数。在函数doCalc()中,调用第三个参数指定的函数,并将前两个参数传递给它:

function doCalc(num1, num2, calcFunction){
   return calcFunction(num1, num2);
}

可定义一个函数,并将其函数名传递给doCalc(),如下所示:

function addFunc(n1, n2){
   return n1 + n2;
}
doCalc(5, 10, addFunc);

然而,也可在调用doCalc()时直接定义一个匿名函数,如下面的两条语句所示:

print( doCalc(5, 10, function(n1, n2){ return n1 + n2; }) );
print( doCalc(5, 10, function(n1, n2){ return n1 * n2; }) );

从中可以看出使用匿名函数的优点:对于不会用于代码其他地方的函数,不需要正式定义它。这种优点让JavaScript代码更简洁,可读性更强。

▼ Try It Yourself

01 function formatGreeting(name, city){
02  var retStr = "";
03  retStr += "Hello " + name +"\n";
04  retStr += "Welecome to " + city + "!";
05  return retStr;
06 }
07 var greeting = formatGreeting("Frodo", "Rivendell");
08 print(greeting);
09 greeting = formatGreeting("Arthur", "Camelot");
10 print(greeting);
Hello Frodo
Welecome to Rivendell!
Hello Arthur
Welecome to Camelot!