2017-08-09 34 views
1

引数を関数内の関数に渡そうとしています。関数内の関数に引数を渡す - javascript

function add() { 
    let x = arguments[0]; 

    function s(num) { 
    return num + x; 
    } 
} 

add(2)(3) //second argument to be passed to 'function s'. 

ので、これに最善のアプローチは何5.

を返すために、コールを望むイム?前もって感謝します。

+0

おそらく '* add(1)(2)(3)(4)' *のような可変数の連鎖呼び出しを受け入れる機能です。(https://stackoverflow.com/questions/45162228/function- to-accept-variable-number-of-chained-call-like-add1234)を使用します。 – RobG

答えて

2

curryingは、関数の引数を部分的に適用するための構造の名前です。これは、複数の引数を関数に渡す代わりに、最終的な結果を期待する代わりに、この引数のサブセットを渡して、残りのarugmentsを待っている関数を返すことができることを意味します。

function add() { 
    let x = arguments[0]; 

    return function s(num) { 
    return num + x; 
    } 
} 

add(2)(3); 

ES6 CurryedのHello World::

すでに述べたように、あなたの例では、第二の機能のリターンが欠落しているとなり、@KevBotによって指さ

curryedHelloWorld = (greeting) => (name) => `${greeting}, ${name}!`; 
curryedHelloWorld("Hello")("Tygar"); 

あなたもすることができますcurryedHelloWorldの例を逆にしてください。

helloworld = (greeting, name) => curryedHelloWorld(greeting)(name); 
helloworld("Hello", "Tygar"); 
+0

[* '[javascript] currying' *](https://stackoverflow.com/search?q=%5Bjavascript%5D+crying)を検索すると、1,000件を超える結果が返ってきます。 OPがカリングやチェーンを望んでいるかどうかは私には分かりません。おそらく[* Variadic curried sum function *](https://stackoverflow.com/questions/5832891/variadic-curried-sumfunction)? – RobG

関連する問題