Javascript 编写一个函数,其中两个函数的输出均为“;总和(2,3)“;及;第(2)(3)款;五岁

Javascript 编写一个函数,其中两个函数的输出均为“;总和(2,3)“;及;第(2)(3)款;五岁,javascript,Javascript,最近我在一次采访中提出了一个问题,就是“写一个函数,它的输出将是相同的和(2,3)和和和(2)(3),即5” 如果可能的话,请给出任何意见 提前感谢sum(x)(y),让sum(x)返回另一个函数f,以便f(y)-即(sum(x))(y)-计算出正确的结果。有关闭包和从函数返回函数如何实现这一点的示例,请参见 该属性可用于确定已向(sum)函数提供了多少个参数,并作出相应的反应:sum(x,y)的立即和,或使用单个参数调用时的上述参数 (链接的“Curried JavaScript functi

最近我在一次采访中提出了一个问题,就是“写一个函数,它的输出将是相同的和(2,3)和和和(2)(3),即5”

如果可能的话,请给出任何意见

提前感谢
sum(x)(y)
,让
sum(x)
返回另一个函数f,以便
f(y)
-即
(sum(x))(y)
-计算出正确的结果。有关闭包和从函数返回函数如何实现这一点的示例,请参见

该属性可用于确定已向(
sum
)函数提供了多少个参数,并作出相应的反应:
sum(x,y)
的立即和,或使用单个参数调用时的上述参数

(链接的“Curried JavaScript functions:no,不是Curried Spicle,而是Curried lambda Calculation like”文章实际上包含了一个完整的解决方案。但它认为在这里提供代码是欺骗。)

对于
sum(x)(y)
,have
sum(x)
返回另一个函数f,这样
f(y)
-ie.
(sum(x))(y) 
-计算出正确的结果。有关闭包和函数返回函数如何实现这一点的示例,请参阅

该属性可用于确定已向(
sum
)函数提供了多少个参数,并作出相应的反应:
sum(x,y)
的立即和,或使用单个参数调用时的上述参数


(链接的“Curried JavaScript functions:no,不是Curried Spicle,而是Curried lambda Calculation like”文章实际上包含了一个完整的解决方案。但它认为在这里提供代码是欺骗。)

这是一个简单的函数,不计算参数:

function sum(a,b){
    if(b===undefined){
        return function(c){ return parseInt(a)+parseInt(c);}
    }
    return parseInt(a)+parseInt(b);
}
console.log(sum(2,3));
console.log(sum(2)(3));

以下是不计算参数的简单函数:

function sum(a,b){
    if(b===undefined){
        return function(c){ return parseInt(a)+parseInt(c);}
    }
    return parseInt(a)+parseInt(b);
}
console.log(sum(2,3));
console.log(sum(2)(3));

第(2)(3)款……不适用possible@Rakin这在JavaScript中是可能的。代码
result=sum(2)(3)
实际上与
f=sum(2);result=f(3)
相同,没有中间变量。这是因为JavaScript函数本身只是(一级)值。太好了。.新信息谢谢@user2864740sum(2)(3)…不是possible@Rakin这在JavaScript中是可能的。代码
result=sum(2)(3)
实际上与
f=sum(2);result=f(3)
相同,没有中间变量。这是因为JavaScript函数本身只是(一级)值。太好了。.新信息谢谢@user2864740我想不会是这样的“作弊”,反而会有帮助,因为链接可能不会永远存在(只需在包含代码时给予信任)。此外,人们很懒惰,可能不想去另一个网页寻找它。我不认为这是“作弊”,而是会有帮助,因为链接可能不会永远存在(只需在包含代码时给予信任)。此外,人们很懒,可能不想去其他网页查找。
b='
在某些浏览器(Chrome)中不起作用。
b='
在某些浏览器(Chrome)中不起作用。