📅  最后修改于: 2023-12-03 15:07:40.864000             🧑  作者: Mango
在 JavaScript 中,函数是一等公民,这意味着函数可以像数据一样被传递,可以被赋值给变量,可以作为参数传递给另一个函数,也可以作为另一个函数的返回值。
在 JavaScript 中,将函数作为参数传递的语法非常简单:将函数名作为参数名即可。
下面是一个将函数作为参数传递的示例代码:
function sayHello(name) {
console.log(`Hello, ${name}!`);
}
function greet(greeter, name) {
greeter(name);
}
greet(sayHello, 'John'); // Hello, John!
在这个示例代码中,我们定义了两个函数:sayHello
和 greet
。sayHello
函数接受一个参数 name
,并打印出一句问候语。greet
函数接受两个参数:一个函数 greeter
和一个字符串 name
。greet
函数将 name
参数传递给 greeter
函数,使得 greeter
函数可以使用 name
参数来打印问候语。
在调用 greet(sayHello, 'John')
时,我们将 sayHello
函数作为参数传递给了 greet
函数,使得 sayHello
函数在 greet
函数内部被调用,并打印出了问候语。
除了将具名函数作为参数传递之外,我们还可以使用匿名函数作为参数传递。
下面是一个将匿名函数作为参数传递的示例代码:
function greet(greeter, name) {
greeter(name);
}
greet(function(name) {
console.log(`Hi, ${name}!`);
}, 'Jenny'); // Hi, Jenny!
在这个示例代码中,我们在调用 greet
函数时,将一个匿名函数作为第一个参数传递给了 greet
函数。这个匿名函数接受一个参数 name
,并打印出了一句问候语。
在 ECMAScript 6 规范中,我们还可以使用箭头函数作为函数参数传递。
下面是一个将箭头函数作为参数传递的示例代码:
function greet(greeter, name) {
greeter(name);
}
greet((name) => {
console.log(`Hey, ${name}!`);
}, 'Mike'); // Hey, Mike!
在这个示例代码中,我们在调用 greet
函数时,将一个箭头函数作为第一个参数传递给了 greet
函数。这个箭头函数接受一个参数 name
,并打印出了一句问候语。
在 JavaScript 中,将函数作为参数传递的语法非常简单。除了将具名函数作为参数传递之外,我们还可以使用匿名函数和箭头函数作为参数传递。这种技术非常常见,常常用于编写高阶函数。