Javascript 如何编写一个函数,其中输出为“;总和(2,3)和#x201D;和“;总额(2)(3)及#x201D;五岁
有人能帮我写这个函数吗 编写一个函数,其中“和(2,3)”和“和(2)(3)”的输出均为5Javascript 如何编写一个函数,其中输出为“;总和(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
我认为我们需要使用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
将是第三个参数。看看这个,它可能比上面的例子更清楚: