猿创征文 | JavaScript函数柯里化

目录

一、函数柯里化是什么?

二、如何实现函数柯里化?

1、第一种方法:多层return嵌套

2、第二种方法:将普通函数转成柯里化函数


一、函数柯里化是什么?

百度百科中对函数柯里化的解释是:在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。

举个说明一下:

比如我们需要求三个数的和,我们一般的做法就是一次性传入三个参数进行求和:

function add(a, b, c){
      return a + b + c
}
//我们一般调用函数的方式
add(1, 2, 3)

而函数柯里化就是每次传入单一的参数,如下所示:

add(1)(2)(3)

那么,此时add函数应该如何写呢?

二、如何实现函数柯里化?

1、第一种方法:多层return嵌套

我们使用add(1)(2)(3)的方式调用函数,就需要每次都返回一个函数,add(1)(2)(3)就相当于:

var fn1 = add(1)
var fn2 = fn1(2)
fn2(3)

因此add函数可以这样写:

这里使用到了闭包的原理来实现add函数,这种方法比较简单,很容易就能想到,但是这种方法并不通用,所以我们可以封装一个函数,用于将普通函数转成柯里化函数。

2、第二种方法:将普通函数转成柯里化函数

柯里化函数执行的过程就是一个收集参数的过程,因此我们只要收集完所有参数,然后把参数传递给普通函数执行即可。

你可能感兴趣的:(JavaScript,前端,前端,javascript,函数柯里化,开发语言)