美文网首页
从vue源码中学到的一些总结之函数的缓存

从vue源码中学到的一些总结之函数的缓存

作者: Splendid飞羽 | 来源:发表于2020-08-05 11:03 被阅读0次

    在设计模式专题中,我们了解到了代理模式,即在调用者与具体实现之间架设一层中间层,通过中间层去做一些操作
    下面给大家介绍的就是vue中使用的缓存一个函数的常用做法

    /**
     * Create a cached version of a pure function.
     */
    function cached(fn) {
        var cache = Object.create(null);
        return (function cachedFn(str) {
            var hit = cache[str];
            return hit || (cache[str] = fn(str))
        })
    }
    
    
    /**
     * Capitalize a string.
     */
    var capitalize = cached(function (str) {
        return str.charAt(0).toUpperCase() + str.slice(1)
    });
    
    let str = capitalize('sliderUp'); // SliderUp
    console.log(str);
    

    分析:首次运行代码的时候,capitalize返回的是一个闭包的function,当后面的真正传参并调用时,对对象进行缓存,如果下次初始化同样的字符串,那么直接从对象的key中获取结果即可。

    相关文章

      网友评论

          本文标题:从vue源码中学到的一些总结之函数的缓存

          本文链接:https://www.haomeiwen.com/subject/axhmrktx.html