函数柯里化(function currying)
函数柯里化,可以延迟接收参数,假设我们传输三个参数,如果第一个参数传输了,那么会返回函数,第二个参数传输也只会返回函数,第三个参数传输到达了参数的上限,这是才会返回执行结果。
-
柯里化的函数可以延迟接收参数
(比如一个函数需要接收的参数是两个,我执行的时候必须接收两个参数,否则没法执行。柯里化后的函数,可以先接收一个函数,然后再接收一个函数) -
只要参数没达到被转换函数的数量,就返回函数
-
支持参数没达到被转换函数的数量时,无限调用
// 理解柯里化的思想的思路 function sum(first) { return function (second) { return first + second } } const result = sum(1)(2);同样实现函数函数柯里化也可以通过 lodash的current函数。
const _ = require('lodash'); function sum(first, second, third) { return first + second + third } const result = _.curry(sum); console.log(result(1)(2)(3));