JS Essential: 일급 함수

박철연·2022년 2월 22일
0

JS Essential

목록 보기
10/10
post-thumbnail

해당 게시물은 도서 <모던 자바스크립트 Deep Dive>와 패스트캠퍼스 강의 "김민태의 프론트엔드 아카데미 : 제 1강 JavaScript & TypeScript Essential"를 참고하여 작성되었습니다.

일급 객체와 일급 함수

자바스크립트에는 일급 객체의 개념이 존재합니다. 일급 개체란 다음 세 가지 조건을 충족하는 객체를 뜻합니다.

  1. 변수에 할당 가능
  2. 객체의 인자로 전달 가능
  3. 객체의 return 값으로 작동 가능

만약 함수가 일급 객체의 조건들을 만족하면, 이를 일급 함수라고 부르는 것입니다.

조금 더 쉽게 설명하면, 일급 함수라고 함은, 함수라는 코드들의 묶음을 일반적인 값처럼 취급한다는 의미입니다.

일반적인 값처럼 취급한다는 것은 가만히 생각해보면 매우 중요한 개념입니다. 왜냐하면 변수에 할당할 수 있다는 것이거든요.

뿐만 아니라 우리는 함수의 결과로 특정 값을 반환할 수도 있습니다. 그 말인즉슨, 함수의 결과로 함수를 뱉을 수도 있다는 뜻입니다.

일급 함수의 개념은 사실 이게 다입니다. 더 중요한 것은 자바스크립트 내에서 일급 함수가 어떠한 식으로 활용되는가를 살펴보는 것입니다.

일급 함수 예시

// 변수에 할당하기
const func = function() {
   console.log("일급 함수");
}
func();

// 인자로 전달하기
function sayHi() {
   return "Hi, ";
}
function greeting(helloMessage, name) {
  console.log(helloMessage() + name);
}
greeting(sayHi, "John!");

// return 값으로 활용하기
function sayHi() {
   return function() {
      console.log("Hi!");
   }
}

위 코드 블럭들을 참고해보세요. 일급 객체의 조건에 부합하는 케이스들을 작성해 보았습니다.

일급 함수는 그 자체로 유용한 자바스크립트 테크닉이기 때문에, 자바스크립트 기반 코드를 짤 때 기본이 되는 개념입니다.

뿐만 아니라, 자바스크립트 중심의 함수형 프로그래밍을 하는데 있어서도 아주 핵심적인 위치에 있습니다.

일급 함수는 기본적인 개념을 챙겨두고, 실제 자바스크립트 함수를 예시로 제시된 코드 블럭처럼 활용해 보는 경험이 필요할 것 같습니다.

profile
Frontend Developer

0개의 댓글