函数柯里化

什么是函数柯里化

对任意一个函数进行处理,得到一个新函数,使它可以处理部分参数。其实这个概念比较难理解。但是开发中会有这样一个场景出现,你在调用同样的函数,并且传入的参数大部分都相同。这时候可以通过传入一部分的参数动态地创建一个新的函数,这个新的函数会存储那些重复的参数(所以你不需要再每次传入),然后再调用原始函数的时候把整个参数列表补全。

通用柯里化函数

    function schonfikelize(fn){
		var slice = Array.prototype.slice,
		// 从Array.prototype中借用slice()方法吧arguments转成数组
		stored_args = slice.call(arguments,1);
		return function(){
			var new_args = slice.call(arguments,1);
			args = stored_args.concat(new_args);
			return fn.apply(null,args);
		}
	}

解决问题

  1. 分步求解函数问题(如不定参累加)
  2. 抽出函数的公共部分,将剩余部分通过参数传入

参考资料

http://web.jobbole.com/90637/

https://segmentfault.com/a/1190000008193605

转载于:https://my.oschina.net/u/3151109/blog/873117

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值