使用 Underscore 的 chain 方法,可以返回一个包装的对象,这个对象里面包含着 Underscore 里面的所有的方法,也就是我们可以直接调用这些方法,完成以后,还会返回这个包装后的对象,这样我们可以继续去调用 Underscore 的方法,这就是链式调用。
现在这里有一个 albums 数组 ... 下面,我们先用 chain 方法去包装一下它 ...
_.chain(albums)
给我们返回来一个包装后的对象 ... 在 _wrapped 属性里面,就是包装的原来的数据 ... __proto__ 里面就是 Underscore 的方法 ...
下面,我们先调用一个 sortBy 这个方法,去给包装后的数据排下顺序,排序的条件,可以使用 releaseYear 这个属性的值 ...
_.chain(albums).sortBy('releaseYear')
回车 .. 返回的还是一个包装后的数据 ... 我们可以继续去调用方法处理它 ...
这里,再用一个 first() 方法,得到排序后的第一个结果 ...
现在,_wrapped 里面,就只剩下 继续革命 这个专辑项目了 ... 因为它是排序之后的第一个结果 ...
最后,得到处理好的结果的值,可以调用 value() 方法 ...
返回的就是处理之后得到的这个对象 ...