📅  最后修改于: 2023-12-03 15:24:13.321000             🧑  作者: Mango
在 JavaScript 中,Memoization 是一种常见的优化技术,它通过缓存函数的计算结果来避免重复的计算,从而提高程序的性能。
下面是一个简单的 Memoization 函数代码的实现思路和示例代码:
function memoize(func) {
const cache = {};
return function (...args) {
const key = JSON.stringify(args);
if (cache[key]) {
return cache[key];
}
const result = func.apply(this, args);
cache[key] = result;
return result;
}
}
在上面的示例代码中,我们首先定义了一个名为 memoize 的函数,该函数接受一个函数作为参数,并返回一个新函数。在新函数内部,我们创建了一个空对象(cache
)用于存储计算结果,并使用了 ES6 的 rest 参数语法(...args
)来接收函数接受的所有参数。接着,我们使用 JSON.stringify 函数将 args 转换成字符串,作为缓存对象的 key。然后,我们检查缓存对象中是否已经存在与当前参数相对应的计算结果,如果存在则直接返回缓存对象中存储的计算结果,否则调用原始函数进行计算,并将计算结果存储到缓存对象中。最后,我们返回计算结果。