利用闭包和arguments避免二次计算浪费性能的缓存函数原理

利用闭包和arguments的原理实现:
如果连续调用某个函数
而这个函数的参数 在每次调用的时候都是一样的
就没有必要一遍一遍的计算
可以用之前的储存的计算结果进行返回

大致原理代码如下

function test1(fn){
    var cache={}
    return function(){
       var str=JSON.stringify(arguments)
       cache[str]=cache[str]?cache[str]+"(来自缓存)":fn.apply(fn,arguments)
       return cache[str]
    }
}

var add=test1(function(){
      
       var arg=arguments.length
       var res=0
       for(var i=0;i

代码不多 但是一般都是这种原理

你可能感兴趣的:(利用闭包和arguments避免二次计算浪费性能的缓存函数原理)