본문 바로가기
Dev/notion

JavaScript: First-Class Functions (일급 함수)

by 괴발짜응 2025. 2. 20.
반응형

일급 함수(First-Class Functions)는 함수가 다른 일반 객체와 동일하게 취급된다는 개념을 말한다.

즉, 함수가 다른 값들과 동일하게 변수에 할당되거나, 함수의 인자로 전달하거나, 함수의 반환값으로 사용할 수 있다는 의미이다.

 

일급 함수의 특징

1. 변수에 할당 가능

함수를 변수에 저장할 수 있다.

const greet = function(name) {
	return `안녕하세요, ${name}님!`;
}

console.log(greet("철수")); // "안녕하세요, 철수님!"

 

2. 함수의 인자로 전달 가능

함수를 다른 함수의 매개변수로 전달하여, 동적인 로직 처리가 가능하다.

function processUserInput(callback) {
    const name = prompt("이름을 입력하세요.");
    alert(callback(name));
}

processUserInput(greet);

 

3. 함수의 반환값으로 사용 가능

함수가 다른 함수를 반환할 수 있어, 고차 함수(Higher-Order Function)를 구현할 수 있다.

function multiplier(factor) {
    return function(number) {
        return number * factor;
    };
}

const double = multiplier(2);
console.log(double(5)); // 10;

 

4. 데이터 구조에 저장 가능

함수는 객체이므로, 배열이나 객체의 프로퍼티 등다양한 데이터 구조에 저장할 수 있다.

const calculator = {
    add: function (val1, val2) {
        return val1 + val2;
    },
    multi: function (val1, val2) {
        return val1 * val2;
    }
}

console.log(calculator.add(1,2)) // 3;
console.log(calculator.multi(1,2)) // 2;

const arr = [
    0,
    1,
    2,
    calculator.add,
    calculator.multi,
];

console.log(arr[0]); // 0
console.log(arr[3](1,2)); // 3
console.log(arr[4](1,2)); // 2;

 

 

일급 함수를 사용하는 JavaScript의 장점

  • 유연성 증가 - 함수를 값으로 다루기 때문에, 코드를 모듈화하고 재사용성이 높은 구조로 작성할 수 있다
  • 고차 함수 활용 - 함수를 인자로 전달하거나 반환함으로써, 복잡한 비동기 로직이나 콜백, 이벤트 처리등을 보다 간결하게 표현할 수 있다.
  • 함수형 프로그래밍  스타일 - 일급 함수를 활용하면 순수 함수와 고차 함수를 기반으로 한 함수형 프로그래밍 패러다임을 적용할 수 있어, 코드의 예측 가능성과 유지보수성이 향상 된다.

여러분 이거 다 크록포드 할배가 한 얘기인거 아시죠?

반응형

'Dev > notion' 카테고리의 다른 글

Syntactic sugar - 문법적 설탕 - 문법 설탕  (1) 2025.02.21
JavaScript : Prototype-based inheritance - 프로토타입 기반 상속  (1) 2025.02.20
Closure - 클로저  (0) 2025.02.19
enum  (1) 2025.02.19
Generic - 제네릭  (0) 2025.02.19