流動関数
8881 ワード
Currying refers to transforming functions with multiple arguments into a function accepting a single argument at a time.
通常、関数は、次の引数を唯一のパラメータとして受け取る別の関数を返します.これは初心者が理解するのが難しいことが多い.高次関数の理解から始めましょう.
高次関数
他の多くの言語とは異なり、JavaScriptは、関数として別の関数を取ることができます.また、結果として関数を返すこともできます.
A function which takes another function as a parameter or that which returns another function is a higher order function.
パラメータとして別の関数をとる関数
let sayHi = function(sayBye) {
sayBye();
alert("Hi !!");
}
let sayBye = function() {
alert("Bye !!");
}
sayHi(sayBye);
アラートが求められる順序を予測できますか?上の例では.sayhi ()は高次関数です.
パラメータとして別の関数を返す関数
let sayBye = function(name) {
return function() {
return "Bye "+ name + " !";
}
}
alert(sayBye("Raj"));
alert(sayBye("Raj")());
あなたは上記の2つのアラートの出力を予測できますか?SaybEye ()は、他の関数を返すため、上位関数です.
一度高次の機能と良いですが、あなたは理解を理解するための準備ができています.つの数字を追加する簡単な例を試してみましょう.
通常のメソッド-関数は
let add = function(a,b) {
return a+b;
}
let result = add(10,12);
alert(result);
EG 2 : Currencyメソッド-関数は、1つのパラメータだけを受け入れます
let add = function (a) {
return function (b) {
return a + b;
};
};
let result = add(10)(12);
alert(result);
add ( 10 )関数を返します.function (b) {
return a + b;
};
上記の関数の場合、12をパラメータとして渡すと、結果として22が得られます.上の例では、これらの呼び出しはいずれも単一のステートメントで行われます.
let result = add(10)(12);
私たちは数のパワーを見つける関数のために、お金を試してみましょう.カバレッジなしで
let power = function (power, number) {
let product = 1;
for (let i = 1; i <= power; i++) {
product *= number;
}
return product;
};
alert(power(3, 2));
カラシング付きlet power = function (power) {
return function (number) {
let product = 1;
for (let i = 1; i <= power; i++) {
product *= number;
}
return product;
};
};
let cube = power(3);
alert(cube(2));
alert(cube(3));
これはあなたがCurryingを理解するのを助けた望み!Curryingで楽しみを続けてください!Reference
この問題について(流動関数), 我々は、より多くの情報をここで見つけました https://dev.to/vanmee/currying-functions-4jpkテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol