<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>16-备忘模式(函数结构缓存)</title>
<style>
* {
margin: 0;
padding: 0;
}
</style>
</head>
<body>
备忘模式(函数结构缓存)
fn(100) -->结果 耗时1S
fn(100) -->结果
思路:
1.提供一个缓存对象cache{key : value}
2.当传入参数进行计算(逻辑处理)的时候,首先去缓存对象中看有没有对应的结果
3.如果有就直接使用(性能优化)
4.如果没有,再进行计算,并且把计算的结果保存在缓存对象中
怎么保存?
key:参数
value : 这个参数对应的结果
<script>
// 1.提供一个缓存对象
var cache = {};
function fun(str) {
// 2.判断缓存对象中有没有对应的结果
if(cache[str] != undefined){
console.log('已经保存过,直接使用');
return cache[str];
}
console.log('第一次计算');
// 3.没有结果,执行计算的操作,并且保存在缓存对象中
var res = str + 'qwer';
cache[str] = res;
return res;
}
fun('demo');
fun('demo');
</script>
</body>
</html>
备忘模式(函数结构缓存)
最新推荐文章于 2024-10-17 16:49:12 发布