higher-order function은 파라미터로 함수를 받는 함수 / 함수 위의 함수
callback function 파라미터에 들어가는 함수 / 불려오는 함수
const func = () => console.log("func");
const timeFuncRuntime = funcParameter => {
console.log('funcParameter');
funcParameter();
return 1;
};
console.log(timeFuncRuntime(func));
결과는
funcParameter
func
1
코드 중간에 funcParameter();는 파라미터로 받은 함수를 실행하는 코드.
위 예에서는 파라미터로 받은 함수(=콜백함수) 는 그냥 로그로 func 찍는 함수이므로
func가 찍힘.
Codecademy 예제는 (출처: 코드카데미)
콜백함수
const checkThatTwoPlusTwoEqualsFourAMillionTimes = () => {
for(let i = 1; i <= 1000000; i++) {
if ( (2 + 2) != 4) {
console.log('Something has gone very wrong :( ');
}
}
};
고차함수
const timeFuncRuntime = funcParameter => {
let t1 = Date.now();
funcParameter();
let t2 = Date.now();
return t2 - t1;
};
const time2p2 = timeFuncRuntime(checkThatTwoPlusTwoEqualsFourAMillionTimes);
console.log(time2p2);
결과값은
3
나왔음
만일 고차 함수로 짜지 않고 한 번에 표현한다면, 이렇게 복잡해졌을 것임
const checkThatTwoPlusTwoEqualsFourAMillionTimes = () => {
let t1 = Date.now();
for(let i = 1; i <= 1000000; i++) {
if ( (2 + 2) != 4) {
console.log('Something has gone very wrong :( ');
}
}
let t2 = Date.now();
console.log(t2-t1);
};
*참고*
'Programming > Javascript' 카테고리의 다른 글
자바스크립트 공부 중 - objects (0) | 2020.11.20 |
---|---|
Codecademy Learn JavaScrpit 코스 어려워서 중단, 생활코딩 자바스크립트 동영상 보기 시작 (0) | 2020.11.16 |
자바스크립트 공부 중 -variables, functions (0) | 2020.11.13 |
코드카다미에서 세번 째 코스 시작 Codecademy Learn JavaScript course (0) | 2020.11.13 |