728x90
반응형
// 함수의 하이라이트, 프로그래밍의 꽃 "콜백함수" : 내가 나중에 부를게~ 이런 컨셉
// 일급객체 first-class object
// 일반 객체처럼 모든 연산이 가능한것.
// 1.함수의 매개변수로 전달, 2.함수의 반환값, 3.할당 명령문, 4.동일 비교 대상
// 일급객체에는 object, function이 있다.
// 고차함수 Higher-order function
// 1. 인자로 함수를 받음 (콜백함수)
// 2. 함수를 반환하는 함수를 고차함수
// 콜백함수
const add= (a, b) => a + b;
const multiply =(a, b) => a * b;
function calculator(a, b, action){ // <= action = 콜백함수; 함수의 레페런스만 외부에서 전달받음.
let result = action(a, b); // <= 결과값은 내가 전달받은 action에 a,b를 전달받아 실행할것
console.log(result);
return result; // <= 결과값 반환
}
calculator(1, 2, add); // calculator에 1과 2를 넣고 add함수를 넣는다.
calculator(1, 2, multiply); // add를 호출하지 않았다. 이름만 전달한것.
// 위에서 선언된 add의 주소값 즉, 참조값만 콜백형태로 전달
// 호출하지 않고 함수를 가르키고 있는 함수를 전달한다.
// 요약.
// 전달된 action은 콜백함수이다.
// 전달될 당시에 함수를 바로 호출해서 반환된 값을 전달하는 것이 아니라
// 함수를 가리키고 있는 함수의 레퍼런스(참조값)가 전달된다.
// 그래서 함수는 고차함수안에서 필요한 순간에 호출이 나중에 됨.
반응형
'JAVASCRIPT' 카테고리의 다른 글
[JavaScript] 함수표현식 (0) | 2023.04.12 |
---|---|
[JavaScript] 삼항연산자 (0) | 2023.04.08 |
[JavaScript] UI와 API, 문서 (0) | 2023.03.24 |
[JavaScript] 모듈 (0) | 2023.03.23 |
[JavaScript] 객체(object) (0) | 2023.03.22 |