Development/성능최적화
성능 최적화하기 - (16) memoization 적용
레오나르도 다빈츠
2022. 6. 21. 08:47
◽ memoization
const cache = {}
export function getAverageColorOfImage(imgElement) {
if(cache.hasOwnProperty(imgElement)) {
return cache[imgElement]
}
// ... 실행로직
return averageColor;
}
◽ memoization 모듈화
function memoize(fn) {
const cache = {}
return function(...args) {
// 파라미터가 여러개인 경우의 방어로직
if(args.length !== 1) {
return fn(...args)
}
if(cache.hasOwnProperty(args)) {
return cache[args]
}
const result = fn(...args)
cache[args] = result
return result
}
}