일급 객체는 프로그래밍 언어에서 다음과 같은 특성을 가지는 객체를 의미합니다.
고차 함수는 일급 객체인 함수를 활용하여 특정한 방식으로 작동하는 함수입니다.
const sayHello = function (name) {
return `Hello, ${name}!`;
};
console.log(sayHello("Jinwoo")); // Hello, Jinwoo!
sayHello
를 변수에 할당하고 나중에 호출해서 사용할 수 있습니다.함수가 다른 함수를 호출하는 방식으로 동작을 제어할 수 있습니다.
function greet(fn) {
fn();
}
const sayHello = function() {
console.log("Hello!");
};
greet(sayHello); // Hello!
greet
는 다른 함수 sayHello
를 인자로 받아 호출합니다.함수 내부에서 함수를 생성하여 반환할 수 있습니다.
function createGreeter(name) {
return function() {
console.log(`Hello, ${name}!`);
};
}
const greetAlice = createGreeter("Jinwoo");
greetAlice(); // Hello, Jinwoo!
createGreeter는
내부에서 새로운 함수를 생성하여 반환합니다. 반환된 함수는 name
를 기억하고 있습니다.일급 객체는 프로그래밍 언어의 특성을 설명합니다. 자바스크립트에서는 함수가 일급 객체입니다.
고차 함수는 일급 객체의 특성을 활용하여 함수를 인자로 받거나 함수를 반환하는 함수의 유형을 설명합니다.