Javascript中的缓存函数
如何在JavaScript中缓存任何函数的执行Javascript中的缓存函数,javascript,Javascript,如何在JavaScript中缓存任何函数的执行 如果在一个缓存函数中传递多个参数怎么办?您可以有一个方法,在该方法中传递一个函数,它将在内部维护一个缓存对象,计算值将缓存在该对象中。当您使用相同的参数调用函数时,将提供缓存的值 function cacheFn(fn) { var cache={}; return function(arg){ if (cache[arg]){ return cache[arg]; }
如果在一个缓存函数中传递多个参数怎么办?您可以有一个方法,在该方法中传递一个函数,它将在内部维护一个缓存对象,计算值将缓存在该对象中。当您使用相同的参数调用函数时,将提供缓存的值
function cacheFn(fn) {
var cache={};
return function(arg){
if (cache[arg]){
return cache[arg];
}
else{
cache[arg] = fn(arg);
return cache[arg];
}
}
}
如果要传递多个参数,首先必须使用参数获取传递给函数的所有参数,然后才能为缓存对象生成密钥。为缓存对象生成密钥可能很棘手,一个解决方案可能是获取所有参数并将它们连接起来。请看下面的代码
return function(){
var args = arguments;
var key = [].slice.call(args).join('');
if(cache[key]){
return cache[key];
}
else{
cache[key] = fn.apply(thi, args);
return cache[key];
}
}
你说的缓存是什么意思?请不要无缘无故地用粗体字写你的文字。请明确说明您试图实现的目标:将函数结果存储在变量中,就像任何语言一样?您想做什么,哪些不起作用?当然,这假设参数可以有意义地强制为字符串。