Lazy.js
在看源码前, 可以先看下Lazy.js的基本思想 Lazy.js 的设计模式)
Lazy
1 2 3 4 5 |
|
- 输入参数 Array | object | string | | null
- 输出 { source: [1, 2, 4] } | { source: {‘a’: b} } | { source: “hello world”} | { source: undefined } | { source: null }
- 可以看到输入的参数被打包成相应的对象, 而这些对象都继承自
sequence
Sequence
sequence
对象提供对 0或者更多连续元素的集合 的统一的 API 封装.为什么所有的操作需要一个 sequence. 看下面的例子
1 2 3 4 5 |
|
上面这个例子中 前四步除了创建对应的sequece没有做任何的遍历source或者别的操作。 只有在第5步调用 each 时,将一次性按照鍊條(chain)的順序处理source 得到最后的结果。所以lazy做的就是延迟遍历处理数据.
in fact, when i think about the performance of
underscore
andlazy.js
; i cann’t understand why lazy is faster. lazy.js: 1 2s 3 underscore: 1 2 3 1 2 3 1 2 3 . so what’s the difference. lazy.js just hold off some process; i cann’t get it…. so continue to read code. >_<
1
|
|
TBC