高阶函数和闭包、函数柯里化

高阶函数:使用回调函数就使用过高阶函数啦。
柯里化:就是函数和参数结合产生一个新函数。
柯里化是固定部分参数,返回一个函数接受 剩余参数,的函数结构。目的为了缩小适用范围,创建一个针对性更强的函数
核心思想是把多参数传入的函数拆成单参数(或部分)函数,内部再返回调用下一个单参数
(或部分)函数,依次处理剩余的参数。而反柯里化,从字面讲,意义和用法跟函数柯里化相比正好相反,扩
大适用范围,创建一个应用范围更广的函数。使本来只有特定对象才适用的方法,扩展到更多的对象。

// ES6方式!
function currying(fn,...rest1){
  return function(...rest2){
    return fn.apply(null, rest1.concat(rest2))
  }
}

//接上面将一个 sayHello函数柯里化试试:
function sayHello(name, age, fruit){
console.Log(console.log(`我叫 ${name},我${age}岁了,我喜欢吃 ${fruit}`))
}
var curryingShowMsg1 = currying(sayHello,‘小明')
curryingShowMsg1(22,'苹果') //我叫小明,我 22 岁了,我喜欢吃苹果
var curryingShowMsg2 = currying(sayHello,‘小衰',20)
curryingShowMsg2('西瓜') //我叫小衰,我 20 岁了,我喜欢吃西瓜

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值