[javascript] 클로저를 활용한 래퍼 함수 구현

이번 포스트에서는 자바스크립트에서 클로저를 활용하여 래퍼 함수를 구현하는 방법에 대해 알아보겠습니다.

래퍼 함수란?

래퍼 함수는 다른 함수나 변수를 감싸는 함수로, 기존의 동작에 추가적인 기능을 덧붙일 수 있습니다. 클로저를 사용하여 래퍼 함수를 구현하면, 외부 함수의 변수에 접근하여 상태를 유지할 수 있습니다.

클로저를 활용한 래퍼 함수 예제

아래 예제는 클로저를 활용하여 래퍼 함수를 구현한 간단한 예제입니다.

function createWrapperFunction(func) {
  let count = 0;

  return function() {
    count++;
    console.log(`함수가 ${count}번 호출되었습니다.`);
    return func.apply(this, arguments);
  };
}

function greet(name) {
  console.log(`안녕하세요, ${name}님!`);
}

const wrappedGreet = createWrapperFunction(greet);

wrappedGreet("홍길동");
wrappedGreet("이순신");

위 코드에서 createWrapperFunction 함수는 클로저를 반환하고, 이 클로저 함수는 외부 변수 count에 접근하여 함수 호출 횟수를 기록합니다. 클로저 함수는 기존 greet 함수를 호출하기 전에 추가적인 동작을 수행하고, 그 결과를 반환합니다.

결론

클로저를 활용한 래퍼 함수는 함수의 기능을 확장하거나 수정할 때 유용하게 활용될 수 있습니다. 기존 함수의 동작을 고려하면서, 클로저를 활용해 보다 유연한 코드를 작성할 수 있습니다.

위 예제를 통해 클로저를 활용한 래퍼 함수가 어떻게 동작하는지 이해할 수 있었습니다. 이를 활용하여 더 강력하고 유연한 코드를 작성해 보세요.

더 많은 정보는 MDN web docs에서 확인할 수 있습니다.