[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 외에도 다양한 유용한 함수들을 제공하므로 프로젝트에서 활용해볼 만한 가치가 있습니다. 자세한 내용은 공식 문서를 참조하십시오.