JavaScript functionCall(arg1)(arg2)

时间:2015-04-03 11:06:39

标签: javascript

我正在学习JavaScript,我找到了这个例子

say("Hello")("World"); 

此代码应返回“Hello World”。

我不知道如何实现这个甚至是什么关键字类型谷歌找到soulution。您能否告诉我这个模式的名称或者如何在JavaScript中实现它?

2 个答案:

答案 0 :(得分:4)

你可以这样做:

function say(firstword){
    return function(secondword){
     return firstword + " " + secondword;   
    }
}

http://jsfiddle.net/o5o0f511/


尽管如此,你永远不会这样做。我确定这只是为了教你函数如何返回可执行函数。

这里有更多这种模式的例子:

How do JavaScript closures work?

答案 1 :(得分:4)

可能你可以尝试闭包:

var say = function(a) {//<-- a, "Hello"
  return function(b) {//<-- b, "World"
    return a + " " + b;
  };
};

alert(say("Hello")("World")); //<--  "Hello World"

这里,当调用say("Hello")时,它返回内部块。稍后调用("World")调用内部块返回连接字符串&#34; Hello World&#34;