First Class Object   일급 객체

(2022-06-29)

1급 객체, 고차 함수, 일급 함수


1. 일급 객체 (First Class Object)

  ㅇ 일급 객체는, 자바스크립트 언어 등에서 다음과 같이 특수한 성질을 갖는 객체를 말함

  ㅇ 특징
     - 리터럴에 의해 생성 가능                                   ☞ 객체 리터럴, 함수 리터럴 참조
     - 동적으로 생성, 할당(대입) 가능  (런타임시 리터럴에 의해 생성 가능)
     - `변수`,`배열 내 요소`,`객체프로퍼티` 등에 할당(대입) 가능
     - 함수를, `파라미터로써 전달` 가능
     - 함수를, `결과 값으로 리턴` 가능


2. 고차 함수 (Higher-order Function,HOF), 일급 함수 (First Class Function)함수를 `인수로써 전달` 받거나, `결과로써 반환`을 할 수 있는 함수를 말함
     - 고차 함수를 사용하면, 값(value) 뿐 만 아니라, 동작(action)도 추상화할 수 있음

  ㅇ 고차 함수는, 불변성(immutability)을 지향하는 함수형 프로그래밍에 기반을 두고 있음
     - 프로그램의 실행 중 변수가 변하는 상태에 대한 고려가 필요한 명령형 프로그래밍 기법과는 다름
     - 즉, 제어문(조건문,반복문 등)에서 나타나는, 논리 흐름,상태 변화 추적 등의 복잡성 제거 가능

  ㅇ 한편, 자바스크립트 함수는, 
     - 일급 객체이며 동시에 일급 함수 임

  ㅇ 커링 (Currying)
     - 2 이상의 인수를 받는 함수를 분해해서, 각각 1 인수로 된 2 이상의 중첩 함수로 변환하는 것



Copyrightⓒ written by 차재복 (Cha Jae Bok)
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"