JS--柯里化与反柯里化

柯里化

什么是柯里化?

简单来说,就是把多参数传入的函数拆成单参数(或部分)函数,内部再返回调用下一个单参数(或部分)函数,依次处理剩余的参数
(实则就是利用了闭包的特性)

目的:缩小适用范围,创建一个针对性更强的函数

用途:简化代码结构,提高系统的可维护性,强制了功能的单一性,自然就做到功能内聚,降低耦合

特点:
1. 降低代码的重复,提高代码的适应性
2. 提高了代码的合理性,更重的它突出一种思想---降低适用范围,提高适用性。
3. 对于一个已有函数,对其约定好其中的某些参数输入,然后生成一个更有好的、更符合业务逻辑的函数。
4. 提高针对性
5. 延迟执行(只有在最后一次才执行)
6. 固定易变因素

应用:ajax场景(ajax('method')()())

在bind方法中也应用到了柯里化:

柯里化函数形式的实现

我觉得柯里化函数的类型也可以分为多种形式

1. 只执行一次(传入对应要执行的函数)

2. 根据要执行函数的形参个数判断执行的次数(执行次数小于等于执行函数的形参个数)

3. 实现无限执行的累加操作(利用reduce和隐式转换的特性)

反柯里化

与柯里化相反的是反柯里化,其目的是为了扩大适用范围,创建一个应用范围更广的函数。使本来只有特定对象才适用的方法,扩展到更多的对象
实现可以让一个对象去借用一个原本不属于他的方法

实现形式:

场景:
判断变量类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值