04. 콜백함수가 뭐지?

Durumi Gim·2021년 4월 21일
0

콜백함수는 말그대로 함수인데,
다른 코드의 인자로 넘겨주는 함수다.
다른 코드의 인자로 넘겨주는 함수,를 넘겨받은 코드는
이 콜백함수를 필요에 따라 어떤 시점에 실행한다.

예시 : A와 B는 6시에 일어나야 한다. 알람 안한 A와, 알람 설정한 B.

A; 불안함에 중간에 계속 깨서 시간 확인 (수시로 시간을 구하는 함수를 직접 호출)
(시계입장 : 요청받을때마다 수동적으로 시간정보 제공)
(시계 함수 제어권은 A에게 있음. 시계는 요청내용을 이행할 뿐)
B ; 알람설정하고 꿀잠 ㄱ. (알람설정 함수를 호출했고, 해당함수는 호출 당시에는 뭘 안함. 정한 시각에만 결과반환)
(시계입장 : 요청받은 뒤 자체적으로 뭔가를 수행하다, 적절한 때에 적극적으로 통보함)
(시계함수 요청을 하면서 알람 울리는 명령 제어권을 시계에게 넘겨준 것)

• 콜백함수의 키워드 # 제어권
• 콜백은 '부르다 '호출하다 '실행하다인 call +
뒤돌아오다, 되돌아 Back 
=되돌아 호출해달라

//함수X를 호출하면서 <특정 조건일때 함수 Y를 실행해서 나에게 알려달라>는 요청을 함께 보내는 것.
//요청받은 함수 X입장에서는 해당 조건이 갖춰졌는지를 스스로 판단 후 Y를 직접 호출함
//콜백함수는 다른 코드(함수 or 메서드)에게 인자로 넘겨줌으로써
그 제어권도 함께 위임한 함수임.
콜백함수를 위임받은 코드는 자체적인 내부 로직에 의해 이 콜백함수를 적절한 에 실행함.

02| 제어권 - 예제로 알기

(1) 호출 시점

4-1 setInterval

//if(++count >5) 로 써도 됩니다.
// timer 변수를 선언하고 , setInterval을 실행한 결과를 할당함
//setInterval을 호출할때 두개의 매개변수를 전달 (익명함수, 숫자)

// const intervalID = scope.setInterval ( func, delay[ , param1, param2 , … ]);
//scope : Window 객체 or Worker의 인스턴스가 들어올 수 있음
(두 객체 모두 setInterval 메서드를 제공하기 때문임, 일반적인 브라우저 환경에서는 window를 생략해서 함수처럼 사용 가능. )
//매개변수 : func, delay 값을 반드시 전달, 세번째 매개변수부터는 옵션
(func 는 함수, delay는 밀리초(ms) 단위의 숫자, 나머지(param1, param2, … ) 는 func 함수를 실행할 때 매개변수로 전달할 인자 )

// func에 넘겨준 함수는 매 delya(ms)마다 실행됨. 그 결과 어떤 값도 리턴 안함
//setInterval를 실행하면, 반복적으로 실행되는 내용 자체를 특정할 수 있는 고유한 ID값이 반환됨.
//이를 변수에 담는 이유는 반복 실행되는 중간에 종료(clearInterval) 할수있게 하기 위해서…

4-2 setInterval

profile
마음도 몸도 튼튼한 개발자

0개의 댓글