
일급 객체는 프로그래밍 언어에서 다음과 같은 특성을 가지는 객체를 의미합니다.
고차 함수는 일급 객체인 함수를 활용하여 특정한 방식으로 작동하는 함수입니다.
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를 기억하고 있습니다.일급 객체는 프로그래밍 언어의 특성을 설명합니다. 자바스크립트에서는 함수가 일급 객체입니다.
고차 함수는 일급 객체의 특성을 활용하여 함수를 인자로 받거나 함수를 반환하는 함수의 유형을 설명합니다.