JavaScript高阶函数

作者 : 慕源网 本文共981个字,预计阅读时间需要3分钟 发布时间: 2022-04-24 共312人阅读

什么是高阶函数?

JavaScript高阶函数是满足三个条件中的任何一个的函数,

  1. 将另一个函数作为参数
  2. 返回任何其他函数
  3. 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 中,函数是一等公民,这意味着,

  1. 它们可以像任何其他变量一样对待。
  2. 它们可以传递给函数。
  3. 它们可以从任何其他函数返回。

慕源网 » JavaScript高阶函数

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录