自学内容网 自学内容网

js的高级用法——柯里化

js的高级用法——柯里化

function curry(fn) {
  return function curried(...args) {
    if (args.length >= fn.length) {
      return fn.apply(this, args)
    } else {
      const h = function(...args2) {
        return curried.apply(this, args.concat(args2)) // 这是个轮询,走到最后还是会return值
      }
      return h
    }
  }
}
function sum(a,b,c,d) {
  return a+b+c-d
}

const curriedSum = curry(sum)
console.log(curriedSum(4)(3)(2)(1)) // 8
console.log(curriedSum(1, 2)(3, 4)) // 2
console.log(curriedSum(1)(2, 3)(4)) // 2
console.log(curriedSum(1, 2, 3, 4)) // 2

原文地址:https://blog.csdn.net/weixin_37787674/article/details/142335778

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!