在 Javascript 中,有没有办法缓存以下函数的结果:
以经常调用的递归阶乘函数为例。通常我会创建一个单独的数组,例如facotrialResults = [];
并在计算时将结果添加到其中,factorialResults[x] = result;
但是,是否有更好的方法来完成此缓存而不使用向全局命名空间添加新变量?
您可以将哈希附加到要缓存的函数。
var expensive_fn = function(val) {
var result = arguments.callee.cache[val];
if(result == null || result == undefined) {
//do the work and set result=...
arguments.callee.cache[val]=result;
}
return result;
}
expensive_fn.cache = {};
这要求该函数是一个没有副作用的 1-1 函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)