Skip to content

Commit fcca210

Browse files
authored
Merge pull request #7 from privetPekin/caching_js
create caching_js
2 parents e1582de + 8c8c317 commit fcca210

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

javascript/caching.js

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/**
2+
* @description - Реализация кэширование сохранение результата функции, которая определена в замыкание
3+
* Функция может любой, но она должна быть чистой и всегда возвращать одни и те же значения в ответ на одни и те же аргументы.
4+
* @param {Function} fn
5+
* @returns
6+
*/
7+
function caching(fn) {
8+
const cach = {}
9+
return function (n) {
10+
if (!cach[n]) {
11+
let result = fn(n)
12+
console.log('Добавляю в кэш:', result)
13+
cach[n] = result
14+
return result;
15+
}
16+
console.log('Беру из кэша:', cach[n])
17+
return cach[n]
18+
};
19+
}
20+
21+
const cachMyFunction = caching((n) => Math.pow(n, 3))
22+
23+
cachMyFunction(3)
24+
cachMyFunction(5)
25+
cachMyFunction(6)
26+
cachMyFunction(3)
27+
cachMyFunction(5)
28+
cachMyFunction(6)
29+
cachMyFunction(10)
30+
cachMyFunction(12)

0 commit comments

Comments
 (0)