利用闭包和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<arg;i++){
           res+=arguments[i]
       }
       return res
})

console.log(add(1,2))
console.log(add(1,2))




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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容