Javascript 函数接受可变数量的链式调用,如'add(1)(2)(3)(4)`
我想实现一个函数,它可以接受任意数量的链式调用,比如Javascript 函数接受可变数量的链式调用,如'add(1)(2)(3)(4)`,javascript,Javascript,我想实现一个函数,它可以接受任意数量的链式调用,比如 add(1)(2); // 3 add(1)(2)(3); // 6 add(1)(2)(3)(4); // 10 如果我像下面这样实现它,它将只接受第一次调用 我需要像下面这样写才能接受第二个电话 function add(n){ return function add_impl(a) { return function add_impl2(b) { return n + a + b; } } }
add(1)(2); // 3
add(1)(2)(3); // 6
add(1)(2)(3)(4); // 10
如果我像下面这样实现它,它将只接受第一次调用
我需要像下面这样写才能接受第二个电话
function add(n){
return function add_impl(a)
{
return function add_impl2(b)
{
return n + a + b;
}
}
}
我想让它成为通用的,这样就可以传递任意数量的参数。您可以这样做
int foo(int... args) {
int total = 0;
for (int arg : args) {
total = total + arg;
}
return total;
}
您可以这样做,但最后仍然需要一个空值,以便让函数知道您的计算已经完成 var a=0; 函数地址{ if.length{ a+=n; 返回添加; } 返回a; } var x=add2345;
console.logx;我认为你可能需要至少在最后再计算一次,但无论如何,这通常被称为“咖喱”,我几乎看不出这有什么意义。接受可变数量参数的add函数可能是实用的,但这不是。函数传递参数add1,2,3,4@gjha只需使用Y-组合子,即不动点组合子。在这种情况下,函数将能够通过Y点调用函数本身。@gjha这与Church数字相同。您可以轻松地在谷歌上搜索它,并根据教堂数字进行完整的计算。
int foo(int... args) {
int total = 0;
for (int arg : args) {
total = total + arg;
}
return total;
}