TIL

일급함수

KANG_G1 2023. 1. 27. 18:22

 일급 함수

JS에서의 함수는 일급 객체라는 말을 개발 초창기부터 들어왔고

그렇게 `함수는 객체에 속하는 것`이라는 것만 알고 개발을 해왔다.

그렇다면 왜 함수는 일급 객체에 속하게 되는것일까.

 

먼저 일급 객체의 특징에 대해 알아야 했다.

 

 

 일급 객체의 특징

변수에 담을 수 있고, 파라미터로 전달이 가능하며, 리턴값으로 사용이 가능할 때 일급 객체라고 말할 수 있다.

 

 

일급 함수

함수를 일급 객체로 다루는 것

 

JS에서는 함수를 변수에 담는 것이 가능하고,

파라미터로 전달도 가능했으며 리턴값으로도 활용할 수 있었다.

그러므로 JS의 함수를 일급 함수이자 일급 객체라고 말할 수 있는 것이었다.

 

개발을 하며 당연하게 여겨오던 것들로 일급 함수의 예시를 들어보자.

 

 일급 함수의 예시

1. 변수에 할당

const box() {

  console.log('box');

}



box(); // const 변수를 통한 호출

 

2. 파라미터로 전달

function box() {

  return 'box ';

}



function secondBox(boxFunc, text) {

  console.log(boxFunc(), text);

}



secondBox(box, "open") // box 함수를 secondBox의 파라미터로 전달

 

 

3. 함수를 리턴

function box(func) {

  return func();

}


// box 함수 안에 secondBox 함수를 리턴시켜 실행. 결과는 10 리턴
console.log(box(function secondBox(){ return 10; }));