でJavaScriptの
機能的なプログラミングでは、能力を通過して、返す機能を持って、高次の機能、純粋な機能とCurryingなどの概念をもたらしました.この記事では、我々はどのようにどのように動作し、どのように我々の仕事のソフトウェア開発者として有用になります.
何がありますか。
はあなたが同じ変数を何度も通過するのを避けるのを助けます. それは高次の関数を作成するのに役立ちます.イベント処理に非常に役立つ. リトルピースを構成することができますし、簡単に再利用. ソース
https://javascript.info/currying-partials
https://blog.bitsrc.io/understanding-currying-in-javascript-ceb2188c339
https://medium.com/@kbrainwave/currying-in-javascript-ce6da2d324fe
https://codeburst.io/currying-in-javascript-ba51eb9778dc
https://www.digitalocean.com/community/tutorials/an-introduction-to-closures-and-currying-in-javascript#what-is-currying
何がありますか。
Currencyは、関数が一度に複数の引数を1つ取るプロセスです.Currencyはf ( a , b , c )としてcallableから関数をf ( a )( b )( c )として呼び出し可能に変換します.Current関数は、次の引数がインラインであることを期待する新しい関数を返します.
Curryingは、あなたに光ときれいな探している機能をさせます.また、あなたの機能のシーケンスを作成することができます.これは、呼び出しの特定のシーケンスが実施され、続いて保証されます.最終的な出力は、すべての依存関係が通過したときにのみ返されます.引数はクロージャで「生きている」状態に保たれ、全ての関数が実行中に使用されます.
どのように、あなたはコードでCurryingを使いますか?
閉鎖によるCurying作品.ネストされた関数によって作成されたクロージャは、各引数へのアクセスを保持します.したがって、内部関数はすべての引数にアクセスできます.
単純な追加機能を見てみましょう.それは引数として3つのオペランドを受け入れて、結果として3つの合計の合計を返します.
例
function add(a,b,c){
return a + b + c;
}
あなたはあまりにも(奇妙な結果を持つ)、またはあまりにも多くの(過剰な引数が無視される)とそれを呼び出すことができます.
add(1,2,3) --> 6
add(1,2) --> NaN
add(1,2,3,4) --> 6 //Extra parameters will be ignored.
例2
let greeting = function (a) {
return function (b) {
return a + ' ' + b
}
}
let hello = greeting('Hello')
let morning = greeting('Good morning')
hello('Austin') // returns Hello Austin
hello('Roy') // returns Hello Roy
morning('Austin') // returns Good morning Austin
morning('Roy') //returns Good Morning Roy
挨拶(こんにちは、朝)から作成された2つの関数は、与えられた入力を処理して挨拶文を生成するそれぞれの戻り関数を作成します.彼らはまた、挨拶される人の名前である引数を取る.
上記の場合、挨拶はまた、それから生成された2つの関数HelloとAddで、機能工場として使われます.
内部関数は、最初の呼び出しの後に呼び出されることもあります.
greeting('Hello There')('General Kenobi')
//returns Hello There General Kenobi
なぜそれは有用ですか?
function add(a,b,c){
return a + b + c;
}
add(1,2,3) --> 6
add(1,2) --> NaN
add(1,2,3,4) --> 6 //Extra parameters will be ignored.
let greeting = function (a) {
return function (b) {
return a + ' ' + b
}
}
let hello = greeting('Hello')
let morning = greeting('Good morning')
hello('Austin') // returns Hello Austin
hello('Roy') // returns Hello Roy
morning('Austin') // returns Good morning Austin
morning('Roy') //returns Good Morning Roy
greeting('Hello There')('General Kenobi')
//returns Hello There General Kenobi
https://javascript.info/currying-partials
https://blog.bitsrc.io/understanding-currying-in-javascript-ceb2188c339
https://medium.com/@kbrainwave/currying-in-javascript-ce6da2d324fe
https://codeburst.io/currying-in-javascript-ba51eb9778dc
https://www.digitalocean.com/community/tutorials/an-introduction-to-closures-and-currying-in-javascript#what-is-currying
Reference
この問題について(でJavaScriptの), 我々は、より多くの情報をここで見つけました https://dev.to/jazsmith24/currying-in-javascript-10fiテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol