Callback

민범기·2022년 3월 16일
0

자바스크립트를 공부하다 보면 필수적으로 마주치게 되는 개념인 Callback 이라는 뜻이 있다.

무슨 뜻 이냐면.. 말 그대로 나중에 전화한다! 즉 나중에 실행할게~ 라는 뜻이다.

우선적으로 일급 객체 라는 의미부터 알아보자.

[일급 객체란?]

일급 객체란?

일급 객체(First-class Object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. [위키 백과]

무슨 말인지 모르겠다..

좀 더 쉽게 설명을 해보자..

Min  = 1;

자, 위의 코드 부분을 보면 1은 Min 이라는 변수의 값이 될 수 있을까?

당연하다. 변수의 값이 될 수 있다. 즉 이것이 일급객체 이다.

그렇다면!

Min = if(조건){
안에 실행될 내용
}

자, 다시 한번 코드를 보자. 저 if문은 Min 이라는 변수의 값이 될 수 있을까?

절대로 될 수 없다. 즉 저것을 일급객체가 아니다.

일급 객체란? 쉽게 생각해서 변수에 값이 지정 될 수 있을 때 일급객체라고 불려진다.

그렇다면!

Min = function(){
console.log("하이")
}

과연 함수는 Min 이라고 하는 변수의 값이 될 수 있을까?

보통 일반 프로그래밍 언어라면 불가능 하지만, 자바스크립트는 가능하다!

자바스크립트는 함수도 일급 객체이다.

일급 객체가 되기 위한 또 하나의 조건이 있는데,

function fn1(){
Min = function(){
return console.log("하이")
}
return Min
}

코드를 잘 보면.. 함수 안에 Min이라고 하는 변수가 함수를 가지고 있다. 그리고 그 함수를 리턴 할 수 있다. 즉 함수가 다른 함수의 리턴 값이 될 수 있다면 그 언어는 함수를 일급 객체로 인식 하고 있는 것이다.

Min = function(){
return console.log("하이")
}
fn(Min);

Min 이라는 함수는 다른 함수의 입력 값으로 될 수 있다면 그 언어에서는 함수를 일급 객체로 인식 하고 있다는 말이다.

[그렇다면 콜백은 무슨말이냐??]

Min = function(){
return console.log("하이")
}
function fn(arg){
arg();
}
fn(Min);//이 부분이 콜백 이다..

코드를 잘 보면 Min 이라고 하는 변수에 담긴 함수가 fn() 함수가 실행 될 때 Min 이라고 하는 변수에 들어 있는 함수가 입력값이 되어서 fn() 함수 내부에 arg 라는 파라미터를 가지고 arg를 함수로써 실행한다! 이 말은 즉 함수는 바로 실행되지는 않지만 다른 함수의 입력 값으로 전달 되어서 다른 함수에 의해서 나중에 호출 된다 라는 뜻에서 콜백 이라는 의미가 생겼다.

profile
프론트엔드 개발 지망생 민범기입니다^^

0개의 댓글