所以我有一个小的JavaScript函数,我需要弄清楚如何编码,作为一个挑战。基本上是:
function me() { // imp this function code }
var isSame1 = me("123")("321") === "123 321";
var isSame2 = me("321")("123") === "321 123";
期望的输出是我们希望两个isSame变量都是真的。所以从我到目前为止的理解,me()函数需要最初返回一个函数(我想象的某种形式的递归),然后以某种方式一个字符串,以便连接结果字符串(真正的例子有一些字符串操作期间me()函数,但我不需要帮助那部分。)
我觉得我有一个JavaScript功能,我在这里看不清楚。我知道我可以将一个函数作为一个对象返回并调用它,这是一个非常简洁的功能,但是字符串处理/传递给另一个函数然后将它返回到底是令我困惑的。
任何人都可以指出我正确的方向来查找。不要让它完全为我回答,只是希望得到合适的研究领域。
Gerneio
答案 0 :(得分:1)
Currying非常简单。只需从me()
返回一个范围函数。
例如,要使用闭包实现curried加法,您可以编写如下函数:
function add (a) {
return b => a + b
}
console.log(add(3)(4))
或者参见下面的挑战解决方案。
function me (a) { return b => `${a} ${b}` } console.log(me(123)(321)) console.log(me(321)(123))
希望这有助于您找到所需内容。