使用煽动性技巧返回报表

时间:2019-03-02 22:43:31

标签: javascript return currying

在使用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语句,该行就会被执行,并且超出该行的所有内容都会被忽略。

4 个答案:

答案 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语句)。其中两个函数恰好会返回另一个函数。