Lodash源码分析之memoize

273 阅读1分钟

四.memoize函数:缓存函数结果

1.memoize接受俩个参数一个是func执行函数,另一个是可选参数resolver

2.判断参数是不是函数类型,如果不是抛出错误


3.创建一个memoized函数也就是这个memoize如何实现缓存的实现函数

4.声明一个memoized函数

5.memoized创建一个名为cache的Map对象

6.将memoized作为返回值

7.执行memoized函数


8.定义key值,如果有resolver那么key由resolver决定,没有则是默认传入参数的第一个

9.获取创建好的cache对象

10.进行判断是否有cache里存在key11.没有则是func函数执行,然后存入新的key12.返回func执行的结果