한 번도 게시글을 쓰면서 일급 객체에 대해 언급을 한 적이 별로 없지만 우리는 항상 일급 객체를 다뤄왔기에 한 번은 정리하고 넘어가려고 한다.
대표적으로 우리가 다루었던 일급객체는 바로 함수
다. 밑의 예제를 통해 함수가 위에 언급된 4가지 조건을 만족한다는 것을 알 수 있다.
//1번과 2번 만족
const increase = function (num) {
return ++num;
}
const decrease = function (num) {
return --num;
}
// 2번 auxs 객체 내 함수 저장
const auxs = { increase , decrease }
// 4번 함수의 반환 값으로 함수 사용
function makeCounter(aux) {
let num = 0;
return function () {
num = aux(num);
return num;
}
}
// 3. 매개변수에 함수를 전달
const increaser = makeCounter(auxs.increase);