[JavaScript] 콜백함수

김터넷 ㅣ 2023. 4. 12. 23:57

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