본문 바로가기

Frontend/Javascript

콜백함수(Callback)란? (+ 일급객체,고차함수)

JS를 보다보면 '콜백함수'라는 말을 정말 많이 들어보았을 것이다. 

나 또한 콜백함수의 존재는 알았으나, 설명하라고 하면 제대로 하지 못하기에 이참에 콜백함수에 대해 제대로 정리해보려고 한다. 

 

콜백함수 

나중에 호출할 함수 

전달받은 함수에서 처리될 일이 끝나고 호출하도록 한다.

 

콜백함수는 Node.js에서 너무나 중요한 개념이다. 

 

JS에서 함수는 일급객체(First-class-citizen) 

일급객체란? 

변수할당, 함수 간 인자 전달 및 반환이 가능해야 하는 특징을 만족해야 한다. 

// 객체 생성 및 변수에 담음 
const a = { msg: "hello 1급 객체" } 

// 객체를 인자로 전달 가능 
function f1(a) { 
	const b = a;
    b.msg2 = "hello 1급 객체..!"; 
    
 	// 객체 반환 가능 
    return b; 
} 

console.log(f1(a));

Javascript의 경우 "명령형","함수형","프로토타입 기반 객체지향형"이라는 다수개의 패러다임을 갖고 있는 멀티 패러다임 언어이다. 

 

함수형에서 Callback 개념과 고차함수 개념이 가장 중요하다. 

 

고차함수 

함수를 인자(parameter)로 받거나 결과로 반환(return)하는 함수 

// 고차함수 사용 
function sayHello() { 
	return function() { 
    	console.log("Hello"); 
        }
} 

// 호출하는 방법
// 1. 변수 사용 
const myFunc = sayHello(); 
myFunc(); // Hello가 출력된다 

// 2. 이중괄호 사용 
sayHello()(); // Hello가 출력된다

참고 https://0xd00d00.github.io/2021/11/27/js_first_object.html

 

[Javascript] 1급 객체 - doodoo's coding

I really love solving computer problem. I wanna grow today more than yesterday.

0xd00d00.github.io