在任何一个语言中,如果要一段程序计算量比拟大、执行工夫比拟长,咱们能够应用缓存机制将其后果保留下来,待一下次执行雷同的程序时,能够去保留的后果中间接获取,而无需再次计算。
在 JavaScript 中的实现如下
let cache = {};
function compute(a){
let result;
let key = a.toString();
if(cache[a]){result = cache[a];
}else{cache[key] = longTime(a);
}
return result;
}
咱们也能够将 cache 对像附加到函数上, 这里提供一种简略的写法,基本原理还是从 cache 中取后果。
let cache = {};
function compute(a){
let result;
let key = a.toString();
if(this.cache[a]){result = this.cache[a];
}else{this.cache[key] = longTime(a);
}
return result;
}
compute.prototype.cache = cache;
new compute('test');