JS函数柯里化

63 阅读1分钟

函数柯里化使用的场景有:

  1. 参数复用
  2. 延时执行
  3. 提前确认

函数柯里化的核心在于:函数里面返回函数,从而做到参数复用的目的。
例子:实现一个函数,满足以下几个要求:
add(1)(2)(4)//输出7
add(1,2)(4)//输出7
牛客 JS62题 柯里化
题目:
image.png 示例输入:
image.png 题解:

function curryIt(fn) {
     //获取fn参数的数量
     var n = fn.length;
     //声明一个数组args
     var args = [];
     //返回一个匿名函数
     return function(arg){
         //将curryIt后面括号中的参数放入数组
         args.push(arg);
         //如果args中的参数个数小于fn函数的参数个数,
         //则执行arguments.callee(其作用是引用当前正在执行的函数,这里是返回的当前匿名函数)。
         //否则,返回fn的调用结果
         if(args.length < n){
            return arguments.callee;
         }else return fn.apply("",args);
     }
 }