일급 객체(First-class Object), 일급 함수(First-class Function)

Dodam·2024년 3월 9일
0

[JavaScript]

목록 보기
10/10
post-thumbnail

일급 객체(First-class Object)

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

일급 객체의 특성은 다음과 같다.

  1. 무명의 리터럴로 생성할 수 있다.
  2. 변수나 자료구조(객체, 배열 등)에 저장할 수 있다.
  3. 함수의 매개변수에 전달할 수 있다.
  4. 함수의 반환값으로 사용할 수 있다.

일급 함수(First-class Function)

자바스크립트의 함수는 위의 조건을 만족하므로 일급 객체가 되고, 일급 함수란 함수를 일급 객체로 취급하는 것을 말한다.
함수가 일급 객체라는 것은 함수를 객체와 동일하게 사용할 수 있다는 의미이고, 객체는 값이므로 이는 결국 함수를 값과 동일하게 취급할 수 있다는 말이 된다.
쉽게 말하자면, '함수'라는 대상이 '값'으로서 사용될 수 있다고 생각하면 된다.

프로그래밍 언어에서 함수가 다른 변수처럼 다뤄질 수 있을 때, 그 언어는 일급 함수를 가졌다고 한다.


일급 함수는 다음 3가지 조건을 만족해야 한다.

  1. 함수를 다른 함수의 전달인자로 넘길 수 있다.
  2. 함수는 다른 함수의 반환값이 될 수 있다.
  3. 함수를 변수에 할당할 수 있다.

함수를 다른 함수의 전달인자로 넘기기

참고:
다른 함수에 전달인자로 전달하는 함수를 콜백 함수라고 한다. 따라서 sayHello()는 콜백 함수이다.


함수를 반환하기

참고:
함수를 반환하거나 다른 함수들을 전달인자로서 사용하는 함수를 고차 함수라고 한다.
JavaScript에서 함수들은 값으로 다루어질 수 있으므로 함수를 반환할 수 있다.


변수에 함수를 할당하기

따라서, 일급 함수의 조건에 따라 자바스크립트는 다음과 같은 것들을 할 수 있다.

참고: MDN Web Docs 용어 사전: 웹 용어 정의 > 일급 함수

profile
Good things take time

0개의 댓글