在使用FreeCodeCamp进行学习时,我遇到了有关咖喱的问题。
解决方案是这样的:
function add(x) {
// Add your code below this line
return function(y) {
return function(z) {
return x + y + z;
}
}
}
add(10)(20)(30);
但是,我对于为什么这里的return语句没有终止函数的执行感到困惑?
给我的印象是,一旦您使用return语句,该行就会被执行,并且超出该行的所有内容都会被忽略。
答案 0 :(得分:2)
仅结束自己的功能。返回的函数尚未调用。
function add(x) {
return function(y) { // \
return function(z) { // |
return x + y + z; // | part of the returned function
}; // |
}; // /
}
add(10)(20)(30);
答案 1 :(得分:1)
是的,使用index=false
确实结束了函数的执行,但是返回值是一个函数本身,然后直接调用该函数,执行下一个函数,以return
结束另一个函数,然后再次被直接调用并产生结果。
return
答案 2 :(得分:0)
每次返回一个新函数,它就会被执行。
答案 3 :(得分:0)
如果一个函数具有多个return语句,那将是正确的,但是在这种情况下,存在多个函数(每个函数都有自己的return语句)。其中两个函数恰好会返回另一个函数。