JavaScript高阶函数
什么是高阶函数?
JavaScript高阶函数是满足三个条件中的任何一个的函数,
- 将另一个函数作为参数
- 返回任何其他函数
- 1和2都行吗
1. 将另一个函数作为参数
让我们看一个例子
function morning(name){
return `Good Morning, ${name}`;
}
function evening(name){
return `Good Evening, ${name}`;
}
function happyBirthday (name){
return `Happy Birthday, ${name}`;
}
function greet(name,func){
return func(name);
}
console.log(greet("karthick",morning));
console.log(greet("Prithivi",evening));
console.log(greet("Natalie",happyBirthday));
让我们理解上面的示例代码。
在上面的代码中,greet 是一个高阶函数,因为它接受另一个函数作为参数。
在上面的示例中,函数morning()、evening() 和happyBirthday() 是回调函数的示例,因为它们被传递给另一个函数(在本例中为greet),然后被该函数greet 调用。
2.高阶函数可以返回另一个函数。
function calculateTotalPrice(money){
return function(){
return money * money *0.1;
}
}
const addTaxes = calculateTotalPrice(100);
console.log(addTaxes());
// calling in a single line
console.log(calculateTotalPrice(100)());
让我们理解上面的代码。
注意,calculateTotalPrice() 是一个返回另一个函数的高阶函数。
另外,请注意如何在一行中调用返回的函数。
一些最常用的内置高阶函数是 map()、reduce() 和 filter()。
每个 JS 开发人员都会有意或无意地使用高阶函数。
JavaScript高阶函数在 JavaScript 中,函数是一等公民,这意味着,
- 它们可以像任何其他变量一样对待。
- 它们可以传递给函数。
- 它们可以从任何其他函数返回。
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!