一等函数
如果一种编程语言中的函数被视为与其他变量一样,则称该语言具有 **一等函数** 。例如,在这样的语言中,函数可以作为参数传递给其他函数,可以被另一个函数返回,并且可以作为值分配给变量。
示例
将函数分配给变量
js
const foo = () => {
console.log("foobar");
};
foo(); // Invoke it using the variable
// foobar
我们将一个 匿名函数 赋值给了 变量,然后使用该变量通过在末尾添加括号 ()
来调用该函数。
注意:即使你的函数有名称,你也可以使用变量名称来调用它。命名它将有助于调试你的代码。但这不会影响我们调用的方式。
将函数作为参数传递
js
function sayHello() {
return "Hello, ";
}
function greeting(helloMessage, name) {
console.log(helloMessage() + name);
}
// Pass `sayHello` as an argument to `greeting` function
greeting(sayHello, "JavaScript!");
// Hello, JavaScript!
我们将我们的 sayHello()
函数作为参数传递给 greeting()
函数,这说明了我们如何将函数视为值。
注意:作为参数传递给另一个函数的函数称为 回调函数。sayHello()
是一个回调函数。
返回函数
js
function sayHello() {
return () => {
console.log("Hello!");
};
}
在这个示例中,我们从另一个函数中返回一个函数 - 我们可以返回一个函数,因为 JavaScript 中的函数被视为值。
注意:返回函数或将其他函数作为参数的函数称为 高阶函数。