함수가 일급 객체?

binary·2022년 5월 24일
1
post-thumbnail

🤷‍♀️ 오늘의 의문

함수가 일급객체라서 고차함수로 활용가능하다.

🤔 벌써 모르는 단어가 두 개나 있다. 일급객체❓ 고차함수❓

🌟 프로그래밍 언어에서의 일급객체

일급객체는 first-class citizens, first-class type, first-class object, first-class value 등 등...

굉장히 많은 이름을 가지고 있다.

type 을 전달, 반환, 할당할 수 있는 경우 해당 type을 1급 객체로 프로그래밍 언어에서는 간주하고 있다.

🧐 전달? 반환? 할당? 어디선가 자주 사용하던 단어같은데?

현재 자바스크립트를 배우고 있으니 자바스크립트 기준으로 생각해보면, 함수가 떠오른다!

함수는 변수에 할당이 가능하면서, 다른 함수의 전달인자로 전달도 가능하다. 그리고 다른 함수의 결과로 함수가 반환이 되기도 한다.

🌟 일급객체

  • 변수에 할당 가능
  • 다른 함수의 전달인자로 전달 가능
  • 다른 함수의 결과로 리턴 가능

🌟 고차함수

  • 함수를 전달인자로 받는 함수
  • 함수를 리턴하는 함수

이렇게 정리하고 보니, 함수가 일급객체라서 고차함수로 활용가능하다. 라는 말에 가졌던 의문이 조금은 해결된 듯 하다.

다른 함수의 전달인자로 전달도 되고 다른 함수의 결과로 리턴도 되는 함수는 일급객체이다.
일급객체의 특징을 함수가 가졌기 때문에 함수를 전달인자로 받고 함수를 리턴하는 함수인 고차함수로도 활용할 수 있다는 이야기구나!

참고 블로그 👉 Javascript에서 왜 함수가 1급 객체일까요?


혹시나 잘못된 정보가 있다면 댓글로 알려주세요 ! 저의 성장의 큰 도움이 될 것 같습니다.🌱

0개의 댓글