memoize
by Evgeniy Kvasyuk
JavaScript
const memoize = (func, hashFunc = e => e) => {
const cache = {};
return (...props) => {
const key = hashFunc(...props);
return cache.hasOwnProperty(key) ? cache[key] : cache[key] = func(...props);
};
}
const testFunc = (a, b) => {
console.log('не кеширование');
return a + b;
}
const memoizedTest = memoize(testFunc);
console.log(memoizedTest(3, 6));
console.log(memoizedTest(3, 6));
console.log(memoizedTest(3, 6));
console.log(memoizedTest(4, 6));