JS初识高阶函数和函数柯里化

一、高阶函数

基本概念

满足下列条件之一,即为高阶函数

  • 一个函数接收的参数也是一个函数。
  • 一个函数返回的也是一个函数。

简单示例

给大家一个例子看一下:
以下的fun以及fun1两个函数都可以称为高阶函数。

function fun(callback){
	console.log('执行fun函数')
	callback()
}
function back(){
	console.log('执行back函数')
}
fun(back) //接收一个函数作为参数


function fun1(){
	console.log('执行fun函数')
	return function back1(){
	console.log('执行back函数')
			}
}
console.log(fun1()()) //调用该fun1函数时会返回一个函数

看到这里相信大家已经明白了高阶函数是什么了,是不是一个很简单的东西。那接下来我们再来看看在我们常用的函数中有哪些函数是高阶函数吧。

常见高阶函数

Promise、定时器(setTimeout、setInterval)、数组方法(map,some…)等等


高阶函数很简单,那接下来我们再看看函数柯里化是什么意思呢?

函数柯里化

基本概念

  • 通过函数调用继续返回函数的方式,实现多次接收参数最后统一处理的函数形式。

通过这个概念可能大家还不是太明白,再看看例子应该就会觉得非常简单了

//普通函数求和
function sum(x,y,z){
	return (x + y + z);
}
console.log(sum(1,2,3)) //这是普通函数求和的方式

//函数柯里化求和
function sum(x){
	return(y)=>{
		return (z)=>{
			return x + y + z
	}
		}
}
console.log(sum(1)(2)(3)) //通过不断调用返回函数的方式最后统一处理得到的值

应用场景

函数的柯里化在一些第一个参数不需要变化,主要对第二个参数来进行计算的时候很有用。比如 货币换算。这样和用单个函数来进行计算相比较的话是不是显得更优雅了呢

const exchange = (num) => {
  return function (num1) {
    return num * num1
  }
}
let exchangeRate = 0.86 //汇率
let count = exchange(exchangeRate)
console.log(count(100)); //直接输入换算的金额

高阶函数以及函数的柯里化可能对于刚入门的新手来说是一个懵懂的概念,甚至会以为是什么高级的东西。但是在稍微有了一些函数基础后再通过看一遍这篇博文,我相信你能很清楚这些东西都是非常简单的。那本次分享就先到这里了,谢谢大家

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

讷言丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值