[javascript] Underscore.js를 사용하여 함수의 결과를 캐싱하는 방법은 어떻게 되나요?
_.memoize
함수는 함수의 결과를 캐싱하여 동일한 인자로 호출될 때 이전에 계산된 결과를 반환합니다. 이를 통해 동일한 계산을 반복하지 않고 캐싱된 값을 사용할 수 있습니다.
아래는 _.memoize
함수를 사용하여 결과를 캐싱하는 간단한 예제입니다.
var expensiveFunction = function(arg) {
// 복잡한 계산 로직이 여기에 포함됩니다.
console.log("Calculating...");
return arg * 2;
};
var memoizedFunction = _.memoize(expensiveFunction);
console.log(memoizedFunction(5)); // 계산이 수행되고 결과가 캐싱됩니다. 출력: Calculating... 10
console.log(memoizedFunction(5)); // 이전에 계산된 결과를 반환합니다. 출력: 10
console.log(memoizedFunction(10)); // 다른 인자로 호출하면 계산이 수행됩니다. 출력: Calculating... 20
console.log(memoizedFunction(10)); // 이전에 계산된 결과를 반환합니다. 출력: 20
위 예제에서 expensiveFunction
함수는 계산이 복잡한 함수입니다. _.memoize
함수를 사용하여 memoizedFunction
을 생성합니다. 이제 memoizedFunction
을 호출할 때마다 결과가 캐싱되어 동일한 인자로 호출할 경우 이전에 계산된 결과를 반환합니다.
Underscore.js는 _.memoize
외에도 다양한 유용한 함수들을 제공하므로 프로젝트에서 활용해볼 만한 가치가 있습니다. 자세한 내용은 공식 문서를 참조하십시오.