JS:对函数柯里化的应用场景的简单理解

早就听说过函数柯里化的概念,但是一直没有明白它能够用在哪里。
一个简单的函数柯里化的例子:

const add = (a, b) => b => a + b

缓存参数(固定参数)

假如有这样一个函数:

const editFile = (type, file, content) => {
	if(type === 'xxxx') {
		//do somethings..
	} 
	if(type === 'xxxx') {
		//do other things..
	} 
	
}

在调用时可能type要传多次:

editFile('vue', file, 'aadasd');
editFile('csv', file, 'aadasd');
editFile('tsv', file, 'aadasd');
editFile('vue', file, 'something');

使用函数柯里化的思想就是

const editFile = type => {
    // 一些预处理
	if(type === 'vue'){
	  return (file, content) => {
			// do somethings
		}
	}
}

按照之前的调用方式,可能预处理要执行很多遍,使用函数柯里化之后后续的重复调用将不再走预处理流程。

提前返回,部分求值

if(平台A){
// ....
}else if(平台B){
// ....
}
// ...
function fn(平台相关参数){
  return function (平台不相关参数){
    
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值