我在几篇文章和博客中看到了对柯里化函数的引用,但我找不到一个很好的解释(或者至少是一个有意义的解释!)
柯里化是指将一个接受多个参数的函数分解为一系列函数,每个函数只接受一个参数。这是一个 JavaScript 示例:
function add (a, b) {
return a + b;
}
add(3, 4); // returns 7
这是一个接受两个参数 a 和 b 并返回它们的和的函数。我们现在将柯里化这个函数:
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。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)