手写函数柯里化原理

简介: 手写函数柯里化原理记录

函数柯里化原理:

const getSum = (args) => {
             //参数求和方法
    return args.reduce((a, b) => {
   
        return a + b;
    })
}
const foo = (...args) => {
   
    const totalParamsSum = getSum(args);            //首次调用,第一个参数,并作为总和total
    const fn = (...arg2) => {
   
        const sum2 = getSum(arg2);
        return foo(totalParamsSum + sum2);       
    }
    fn.toString = () => {
              
        return totalParamsSum;
    }
    return fn;            //只有接下来还有参数进行调用,就会再次执行fn,累加totalParamsSum
}
console.log(foo(1)(2)(3) == 6)

记录一下~

目录
相关文章
|
9月前
|
前端开发
Promise的用法&原理&手写实现-2
Promise的用法&原理&手写实现-2
26 1
|
2月前
什么是闭包?手写一个闭包函数
什么是闭包?手写一个闭包函数
25 0
|
9月前
|
前端开发 JavaScript API
Promise的用法&原理&手写实现-1
Promise的用法&原理&手写实现-1
32 0
|
11月前
|
JavaScript
面试官:什么是柯里化?怎样实现柯里化?
面试官:什么是柯里化?怎样实现柯里化?
柯里化函数简单实现
柯里化是一种函数式编程技术,可以将一个接受多个参数的函数转换成一系列接受一个参数的函数,这些函数可以在被顺序调用的过程中逐步累积参数,最终返回结果。
|
JavaScript 前端开发
📕 重学JavaScript:如何手写一个`reduce`高阶函数?
`reduce` 高阶函数是一个非常常用的数组方法,可以让你用一种简单的方法来处理数组里的元素。 数组就是一串有顺序的东西,比如[1, 2, 3, 4]就是一个数组,里面有四个数字。👌
125 0
|
JavaScript 前端开发 索引
📕 重学JavaScript:如何手写一个`map`高阶函数?
`map` 高阶函数是一个非常常用的数组方法,它可以对数组中的每个元素进行操作,然后返回一个新的数组。
95 0
|
JavaScript 前端开发
📕 重学JavaScript:如何手写一个`pop`高阶函数?
`pop` 高阶函数是一个非常常用的数组方法,可以让你用一种简单的方法来删除数组里的元素。
105 0
|
JavaScript 前端开发
📕 重学JavaScript:如何手写一个`push`高阶函数?
`push` 高阶函数是一个非常常用的数组方法,可以让你用一种简单的方法来添加数组里的元素。
111 0
|
JavaScript 前端开发
📕 重学JavaScript:如何手写一个`filter`高阶函数?
`filter` 高阶函数是一个非常常用的数组方法,可以让你用一种简单的方法来筛选数组里的元素。
84 0