[javascript] 변수로서의 함수

함수는 일급 객체로 취급되어 변수에 할당하고, 다른 함수에 인자로 전달하거나 다른 함수로부터 반환할 수 있습니다. 이는 함수형 프로그래밍과 콜백 기반의 비동기 처리 등의 여러가지 상황에서 유용하게 활용됩니다.

함수를 변수에 할당하기

const add = function(a, b) {
  return a + b;
};

console.log(add(2, 3)); // 5

위의 예제에서 add라는 이름의 변수에 익명 함수를 할당했습니다. 이제 add를 통해 해당 함수를 호출할 수 있습니다.

함수를 다른 함수에 전달하기

function greet(name) {
  return `Hello, ${name}!`;
}

function showGreeting(greetFunc, name) {
  console.log(greetFunc(name));
}

showGreeting(greet, 'Alice'); // Hello, Alice!

위 예제에서 greet 함수를 showGreeting 함수에 인자로 전달하여 호출했습니다.

함수를 다른 함수로부터 반환하기

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

const double = createMultiplier(2);
console.log(double(3)); // 6

createMultiplier 함수는 다른 함수를 반환하는 예제입니다. 반환된 함수는 multiplier를 이용하여 입력받은 number를 곱한 결과를 반환합니다.

결론

함수를 변수처럼 다루는 것은 자바스크립트에서의 광범위한 활용성을 제공합니다. 함수형 프로그래밍 패러다임을 따르거나 콜백을 사용하는 경우, 함수를 변수처럼 다루는 것은 매우 효율적이고 유연한 방법일 수 있습니다.

참고문헌: