手写函数柯里化原理

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

函数柯里化原理:

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)

记录一下~

目录
相关文章
|
前端开发
Promise的用法&原理&手写实现-2
Promise的用法&原理&手写实现-2
57 1
|
9月前
什么是闭包?手写一个闭包函数
什么是闭包?手写一个闭包函数
72 0
|
5月前
|
Python
全网最适合入门的面向对象编程教程:Python函数方法与接口-函数与方法的区别和lamda匿名函数
【9月更文挑战第15天】在 Python 中,函数与方法有所区别:函数是独立的代码块,可通过函数名直接调用,不依赖特定类或对象;方法则是与类或对象关联的函数,通常在类内部定义并通过对象调用。Lambda 函数是一种简洁的匿名函数定义方式,常用于简单的操作或作为其他函数的参数。根据需求,可选择使用函数、方法或 lambda 函数来实现代码逻辑。
|
9月前
|
Java Python
编程中的函数与方法
编程中的函数与方法
104 4
|
9月前
|
Python
Python函数式编程,举例说明高阶函数的使用。
Python函数式编程,举例说明高阶函数的使用。
77 2
|
前端开发 JavaScript API
Promise的用法&原理&手写实现-1
Promise的用法&原理&手写实现-1
69 0
柯里化函数简单实现
柯里化是一种函数式编程技术,可以将一个接受多个参数的函数转换成一系列接受一个参数的函数,这些函数可以在被顺序调用的过程中逐步累积参数,最终返回结果。
|
缓存 前端开发 JavaScript
带你手写 Promise,别再死记硬背了!!!(上)
带你手写 Promise,别再死记硬背了!!!
1084 1
|
JavaScript 前端开发
📕 重学JavaScript:如何手写一个`reduce`高阶函数?
`reduce` 高阶函数是一个非常常用的数组方法,可以让你用一种简单的方法来处理数组里的元素。 数组就是一串有顺序的东西,比如[1, 2, 3, 4]就是一个数组,里面有四个数字。👌
169 0
|
JavaScript 前端开发
📕 重学JavaScript:如何手写一个`pop`高阶函数?
`pop` 高阶函数是一个非常常用的数组方法,可以让你用一种简单的方法来删除数组里的元素。
151 0