## 고차함수: 함수를 인자(argument)로 받거나 함수를 리턴하는 함수(인자로 전달되는 함수를 콜백함수 라고함)
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