gpt4 book ai didi

javascript - 函数的缓存结果?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:26:40 24 4
gpt4 key购买 nike

在 Javascript 中,有没有一种方法可以缓存以下函数的结果:

  • a).计算量大。
  • b).多次调用。

以经常调用的递归阶乘函数为例。通常我会创建一个单独的数组,例如 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 函数。

关于javascript - 函数的缓存结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11660397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com