일급객체 (first class citizen)
- 변수에 할당(assignment)할 수 있다.
- 다른 함수를 인자(argument)로 전달 받는다.
- 다른 함수의 결과로서 리턴될 수 있다.
일급객체가 할 수 있는 것?
- 고차함수(Higher order function)를 만들 수 있다.
- 콜백(callback)을 사용할 수 있다.
그래서 고차함수(Higher order function)란?
- 함수를 전달인자 또는 매개변수로 받거나 함수를 리턴하는 함수
- ex) Array.prototype.map, Array.prototype.filter, Array.prototype.reduce
그래서 콜백(callback)이란?
- 바로 실행되진 않지만 다른 함수의 입력 값으로 전달 되고, 다른 함수에 의해서 나중에 호출 되는 함수
function firstClassFunc(count, apple, potato) {
count < 3 ? apple() : potato();
}
function func1() {
console.log('사과');
}
function func2() {
console.log('감자')
}
firstClassFunc(2, func1, func2);
- 고차함수인 firstClassFunc에서 사과를 출력하는 fun1과, 감자를 출력하는 fun2를 매개변수로 사용하여 고차함수에 넘겨준다.
- 이를 통해 알 수 있는 것은 fun1과 fun2는 콜백함수이며, firstClassFunc는 일급객체이자 고차함수 인 것을 알 수 있다.
'Javascript & React' 카테고리의 다른 글
[Javascript] 자바스크립트 Closure에 대한 이해와 설명( + 예시 ) (0) | 2023.01.25 |
---|---|
[React] RTK(Redux Tool Kit)에 대해 알아보자 (0) | 2022.12.28 |
[Javascript] this (일반 함수에서의 this, 화살표 함수에서의 this) (0) | 2022.12.23 |
[Javascript] Javascript에서 함수 호출 때 괄호의 유무? (0) | 2022.12.23 |
JavaScript의 주요 개념 정리(문법) (0) | 2022.04.26 |