[javascript] Underscore.js를 사용하여 함수를 래핑하는 방법은 어떻게 되나요?
Underscore.js는 많은 유틸리티 함수를 제공하며, 그중 하나가 _.wrap()
함수입니다. 이 함수를 사용하면 기존 함수를 래핑하고 기능을 추가할 수 있습니다.
래핑된 함수의 결과를 수정하려면 래핑 함수 내에서 결과를 조작합니다. 예를 들어, 결과를 대문자로 바꾸거나 2를 곱하거나 정렬하는 등의 작업을 수행할 수 있습니다. 또는 래핑 함수가 호출되기 전에 전처리 작업을 수행할 수도 있습니다.
아래 예제를 참고하여 Underscore.js를 사용하여 함수를 래핑하는 방법을 확인해보세요.
var originalFunction = function(arg) {
// 원래 함수의 동작
console.log('원래 함수가 호출되었습니다. 인수:', arg);
return arg + 1;
}
var wrappedFunction = _.wrap(originalFunction, function(func) {
// 함수 호출 전에 실행되는 래핑 함수
console.log('래핑 함수가 호출되었습니다.');
return func(4) * 2; // 원래 함수를 호출하고 결과를 2배로 변환
});
console.log(wrappedFunction('Hello')); // 출력: "래핑 함수가 호출되었습니다.", "원래 함수가 호출되었습니다. 인수: 4", 10
위 코드에서 originalFunction
은 래핑 대상 함수입니다. _.wrap()
함수를 사용하여 originalFunction
을 wrappedFunction
으로 래핑했습니다. wrappedFunction
은 originalFunction
을 호출하기 전에 래핑 함수를 실행하는 역할을 합니다.
래핑 함수는 func
매개변수를 통해 래핑되는 원래 함수에 접근할 수 있습니다. 래핑 함수는 원래 함수를 호출하고 그 결과를 조작한 다음 반환해야 합니다.
마지막으로, console.log(wrappedFunction('Hello'));
을 통해 wrappedFunction
을 호출하여 결과를 확인할 수 있습니다.
더 자세한 정보는 Underscore.js 공식 문서를 확인해주세요.