1日5分符号化「高次関数」
11525 ワード
##高次関数:受信関数をパラメータ(パラメータ)または戻り関数(パラメータに渡される関数をコールバック関数と呼ぶ)
✓パラメータとして他の関数を受け入れる
function double(num) {
return num * 2;
}
-------------------------
function doubleNum(func, num) { //doubleNum은 다른함수를 인자로 받는 고차함수이다 .func 은 doubleNum의 콜백함수이다.
let doubledArr = [];
return func(num);
}
-------------------------
let output = doubleNum(double, 4);//double 은 함수 doubleNum의 콜백 함수이다.
console.log(output); // -> 8
✓関数を返す場合
function adder(added) { //adder는 고차함수
return function (num) {//익명함수 num을 사용하여 added와 더한 값을 리턴한다.
return num + added;
};
}
-------------------------------
let output = adder(5)(3);
console.log(output); //8
-------------------------------
const add3 = adder(3);//adder가 리턴하는 함수를 변수에 저장할수있다
output = add3(2);
console.log(output);
✓関数をパラメータとして受け入れ、関数を返す場合
function double(num) {
return num * 2;
}
-----------------------------------
function doubleAdder(added, func) { //doubleAdder 는 고차함수다 , func 는 doubleAdder의 콜백함수다.
const doubled = func(added);
return function (num) {
return num + doubled;
};
}
-----------------------------------
doubleAdder(5, double)(3); // -> 13 //double 은 함수 doubleAdder의 콜백으로 전달되었다.
-----------------------------------
const addTwice3 = doubleAdder(3, double);
addTwice3(2); // --> 8
Reference
この問題について(1日5分符号化「高次関数」), 我々は、より多くの情報をここで見つけました https://velog.io/@-hsw9724/하루코딩5분고차함수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol