Javascript 如何编写一个函数,其中输出为“;总和(2,3)和#x201D;和“;总额(2)(3)及#x201D;五岁

Javascript 如何编写一个函数,其中输出为“;总和(2,3)和#x201D;和“;总额(2)(3)及#x201D;五岁,javascript,jquery,Javascript,Jquery,有人能帮我写这个函数吗 编写一个函数,其中“和(2,3)”和“和(2)(3)”的输出均为5 我认为我们需要使用closer编写函数 语法如下:sum(2)(3)与咖喱有关。这意味着您需要在主函数中返回另一个函数以获得所需的结果 这是一个关于讨好的视频,我从中学到了很多 函数和(a){ if(arguments.length==1){ 返回函数(b){ 返回a+b; } }否则{ return Object.keys(arguments).reduce((a,b)=>arguments[a]+a

有人能帮我写这个函数吗 编写一个函数,其中“和(2,3)”和“和(2)(3)”的输出均为5


我认为我们需要使用closer编写函数

语法如下:
sum(2)(3)
与咖喱有关。这意味着您需要在主函数中返回另一个函数以获得所需的结果

这是一个关于讨好的视频,我从中学到了很多

函数和(a){
if(arguments.length==1){
返回函数(b){
返回a+b;
}
}否则{
return Object.keys(arguments).reduce((a,b)=>arguments[a]+arguments[b]);
}
}
控制台日志(总和(2,3));

控制台日志(总和(2)(3))语法如下:
sum(2)(3)
与咖喱有关。这意味着您需要在主函数中返回另一个函数以获得所需的结果

这是一个关于讨好的视频,我从中学到了很多

函数和(a){
if(arguments.length==1){
返回函数(b){
返回a+b;
}
}否则{
return Object.keys(arguments).reduce((a,b)=>arguments[a]+arguments[b]);
}
}
控制台日志(总和(2,3));

控制台日志(总和(2)(3))函数和(a,b){return(typeof b!='undefined')?a+b:函数(b){return a+b;};};}函数和(a,b){return(typeof b!='undefined')?a+b:函数(b){return a+b;};};}它是这个闭包函数!在这里开箱思考,更好的可读性IMHO,您可以返回
return sum.bind(this,a)
而不是一个新的匿名函数(即使从技术上讲,
bind
返回一个匿名函数)。@karlandréGagnon你能告诉我它到底是如何工作的吗?绑定
功能
关键字引用第一个参数(2),
a
引用第二个参数(3)?@Kinduser使用bind时,返回一个新函数。
.bind
的第一个参数是上下文(this
的值)。在这种情况下,它可以是任何东西,因为
sum()
没有使用
this
。使用与递归函数上的被调用方相同的方法是一个很好的实践。调用时,
.bind()
的每一个其他参数都将是绑定函数的未来参数。然后,调用绑定函数时传递的参数将位于调用
.bind()
时传递的参数之后。所以
3===参数[1]
。这够清楚吗?;)有点难以解释本机函数…@Kinduser Nope,
参数[0]==2
,因为第一个参数是
.bind()
的第二个参数。如果bind有3个参数,那么
3
将是第三个参数。看看这个,它可能比上面的例子更清楚:它是这个闭包函数!在这里开箱思考,更好的可读性IMHO,您可以返回
return sum.bind(this,a)
而不是一个新的匿名函数(即使从技术上讲,
bind
返回一个匿名函数)。@karlandréGagnon你能告诉我它到底是如何工作的吗?绑定功能
关键字引用第一个参数(2),
a
引用第二个参数(3)?@Kinduser使用bind时,返回一个新函数。
.bind
的第一个参数是上下文(this的值)。在这种情况下,它可以是任何东西,因为
sum()
没有使用
this
。使用与递归函数上的被调用方相同的方法是一个很好的实践。调用时,
.bind()
的每一个其他参数都将是绑定函数的未来参数。然后,调用绑定函数时传递的参数将位于调用
.bind()
时传递的参数之后。所以
3===参数[1]
。这够清楚吗?;)有点难以解释本机函数…@Kinduser Nope,
参数[0]==2
,因为第一个参数是
.bind()
的第二个参数。如果bind有3个参数,那么
3
将是第三个参数。看看这个,它可能比上面的例子更清楚: