cached缓存:利用闭包特性缓存数据
1 | export function cached(fn){ |
该函数利用闭包,实现的功能是传入一个普通函数,使之转换为带有缓存的函数,避免重复计算。首先在函数内声明一个cache对象,用于存放函数调用的结果,在下次函数调用时,如果命中缓存则不进行函数调用,如果没有命中缓存则调用函数并缓存返回值。
toArray:把类数组转成真正的数组
1 | function toArray(list, start){ |
利用i这个变量来做一个反向填充,如果是一般思维的话就是直接从start开始,一个for循环遍历list进行正向填充了。这样的反向填充可以省下每次循环去判断数组长度,或者就算缓存数组长度也需要多一个变量,空间依然会有一个浪费。