我在多篇文章和博客中看到过对柯里化(Currying)函数的引用,但我找不到一个好的解释(或者至少是一个有意义的解释!)
最佳答案
柯里化(Currying)是指将一个接受多个参数的函数分解为一系列函数,每个函数只接受一个参数。这是一个 JavaScript 示例:
function add (a, b) {
return a + b;
}
add(3, 4); // returns 7
这是一个接受两个参数 a 和 b 并返回它们之和的函数。我们现在将柯里化(Currying)这个函数:
function add (a) {
return function (b) {
return a + b;
}
}
这是一个接受一个参数 a
的函数,并返回一个接受另一个参数 b
的函数,该函数返回它们的总和。
add(3)(4); // returns 7
var add3 = add(3); // returns a function
add3(4); // returns 7
- 第一个语句返回 7,就像
add(3, 4)
语句一样。 - 第二个语句定义了一个名为
add3
的新函数,它将 将 3 添加到它的参数中。 (这就是某些人所说的闭包。) - 第三条语句再次使用
add3
操作将 3 加到 4 结果产生 7 个。
关于javascript - 什么是 'Currying' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56080676/