在任何一个语言中,如果要一段程序计算量比拟大、执行工夫比拟长,咱们能够应用缓存机制将其后果保留下来,待一下次执行雷同的程序时,能够去保留的后果中间接获取,而无需再次计算。
在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');