关于箭头链式函数的抽象逻辑总结和思考

24 篇文章 0 订阅

箭头函数的诞生使得js编程在一定程度上得到了简化,代码简洁明了。箭头函数实现了this作用域上和函数外部保持一致,但是在箭头函数简写上有时是相对抽象的。

对于一般简写:

name => `my name is ${name}`

这种可以理解为参数name经过函数后变为my name is name。是相对比较好理解的。

还有一种比较复杂的简写,链式调用 

const chainFunction = name => when => where => why => what => how => `${when}${name}在${where}由于${why}${how}${what}`
//调用:
chainFunction('小明')('4月11日')('公司')('项目bug')('检查代码')('全神贯注的')

运行结果:

由上面的例子能够想到什么呢?如果我们把这个函数转化成es5,会是一串return,每一个都是接收参数的新函数,最后返回结果,其实这也是偏函数的实现。这点也不同于thunk函数

既然返回的都是一个接受参数的函数,那么我们可以这样理解:

箭头函数的链式函数中,每一层箭头只是为了给当前程序注入额外的变量参数,当然也可以使用(...args),最终这些参数经过函数的处理返回一个结果(或者不反回)。

在链式箭头函数每个层级也可以对参数进行额外的操作,但这并不影响每一层级出现的意义。

从这个角度理解,我觉得可以避免陷入到一串return中去,还要去分析每一次return之后,函数的结果。

这种理解方法我把它称之为函数整体分析法。

思考:很多时候程序看起来是复杂的,但是程序总归是程序,总是有规律可循的,尽可能简单的抽象通用逻辑,这样反而好理解,有时候不用太关注细节。

应用:redux中的applyMiddleware,compose等

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值