[Javascript] 고차함수&콜백함수

김채현·2022년 7월 14일
0

TIL(Today I Learned..)

목록 보기
13/24

고차함수와 콜백함수의 개념을 배우기전 알아야할 개념이 있습니다.

바로 '일급객체'입니다.

자바스크립트에서 객체는 일급객체입니다. 함수 또한 객체로 표현하기 때문에 일급함수도 만족합니다.

일급객체란 다른 객체들에 일반적으로 적용가능한 연산을 모두 지원하는 객체를 가리킵니다. 보통 함수에 인자로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급객체라고 합니다.

즉 함수를 변수에 할당할 수도 있고 객체에 추가할 수도 있으며 다른 함수에 인수로 전달하거나 함수에서 함수로 반환할 수 도 있습니다.

고차함수

자바스크립트는 일급객체이므로, 함수를 인자로 전달받거나 함수를 결과로 반환이 가능합니다.

function add(n) {
  return function(num){
   	return n + num; 
  };
}

add(1)(2);       // 3출력

const add1 = add(1);
add1(5);		// 6 출력
add1(10);		// 11출력

위와 같이 add 함수를 만들어 함수를 리턴하는 고차함수를 만들 수 있습니다.

콜백함수

콜백함수는 함수안에서 실행하는 또 다른 함수로 이해할 수 있습니다.

함수를 만들때 파라미터를 함수로 받아서 사용할 수 있는데 이 때 인자로 사용되는 함수를 말합니다.

즉, 파라미터로 변수가 아닌 함수를 전달하는 것을 말합니다.

function checkBoolean(bool, func1, func2) {
	if(bool == true) func1();
  	else func2();
}

function trueFunc() {console.log('true')}
function fasleFunc() {console.log('fasle')}

checkBoolean(true, trueFunc, falseFunc);

위와 같이 파라미터로 변수가 아닌 함수로 전달이 가능하며,
전달 받은 함수 값을 출력할 수 있게 됩니다.

profile
꿈꾸는 개발자!

0개의 댓글