在此模式下执行的Javascript函数;xyz();抛出错误?

在此模式下执行的Javascript函数;xyz();抛出错误?,javascript,function,Javascript,Function,为什么它不是一个函数错误? 我正在使用NodeJs执行上述sript。只有当递归求和是一个函数时,它才会工作 现在,您尝试将recursiveSum(1)的返回值作为函数执行。它不是(它是未定义的),因此会抛出一个错误;您尝试执行未定义(2)(3) 你可以这样做 函数currySum(x){ 返回函数(y){ 返回函数(z){ 返回x+y+z; } } } 控制台日志(currySum(1)(2)(3))recursiveSum应该返回一个函数。虽然它是一个有效的语法?因为它不是有效的语法,但

为什么它不是一个函数错误?
我正在使用NodeJs执行上述sript。

只有当递归求和是一个函数时,它才会工作

现在,您尝试将
recursiveSum(1)
的返回值作为函数执行。它不是(它是
未定义的
),因此会抛出一个错误;您尝试执行
未定义(2)(3)

你可以这样做

函数currySum(x){
返回函数(y){
返回函数(z){
返回x+y+z;
}
}
}

控制台日志(currySum(1)(2)(3))
recursiveSum
应该返回一个函数。
虽然它是一个有效的语法?
因为它不是有效的语法,但并非所有有效的语法都有效
undefined(2)
也是有效的语法(考虑到
recursiveSum(1)
)的返回值,这实际上就是您正在做的),请查看,,以了解这是如何正确完成的。如果,我有20个参数,我已经编辑了我的答案以解决该场景,Sourabh。
 var recursiveSum = function() {
    console.log(arguments.length);
 }
 recursiveSum(1)(2)(3);