JS记忆函数
程序员文章站
2022-04-03 23:01:17
...
对于一种纯函数(即只要是同一种输入就能得到唯一一个相同的结果的函数),我们可以设置记忆函数来节约资源,当输入的参数不变时,我们就可以采用缓存的结果,当输入参数有所变化时才重新计算。一种记忆函数如下所示:
function memorize(fn) {
var cachedArg;
var cachedResult;
return function(arg) {
if (cachedArg === arg) {
return cachedResult;
}
cachedArg = arg;
cachedResult = fn(arg);
return cachedResult;
};
}
思想:通过闭包来缓存计算参数以及结果,通过参数的变化与否来决定是否重新计算。
使用方式:将要记忆的纯函数作为参数传入memorize中新建一个新的函数(即为记忆版的纯函数),然后在新的函数中传入原始函数需要计算的参数即可。
上一篇: Go语言之函数使用(8)闭包