柯理化函数-初步封装
Posted web半晨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了柯理化函数-初步封装相关的知识,希望对你有一定的参考价值。
let currying = function(fn)
// args获取第一个方法内的全部参数
let args = Array.prototype.slice.call(arguments, 1);
return function()
// 将后面方法里的全部参数和args进行合并
var newArgs = args.concat(Array.prototype.slice.call(arguments));
// 把合并后的参数通过apply作为fn的参数并执行
return fn.apply(this, newArgs);
;
;
通过闭包把初步参数给保存下来,然后通过获取剩下的
arguments
进行拼接,最后执行需要currying
的函数。但是,有缺陷,这样返回的只能多扩展一个参数,currying(a)(b);
这样的话,就不支持多参数调用。
以上是关于柯理化函数-初步封装的主要内容,如果未能解决你的问题,请参考以下文章