chain,链条,用chain可以使我们的代码变得简单。以下面代码为例,找到三个人中年龄最小的人的名字和年龄。体会一下chain的好处。
如果不使用chain的话,就会是这样:
var stooges =
[{name: 'curly', age: 25}, {name: 'moe', age: 21}, {name: 'larry', age: 23}];
var a = _(stooges).sortBy(’age‘);
var b = _(a).map(function(stooge){ return stooge.name + ' is ' + stooge.age; }) //["moe is 21", "larry is 23", "curly is 25"]
var c = _(b).first() //moe is 21
这样会不会有点麻烦呢?你注意到没有,整个代码就像一条链一样,每个变量都是对上一个变量运用一个方法,这样重复进行。有没有简单点的方法不需要这样定义多个变量呢?当然有啦!
var stooges =
[{name: 'curly', age: 25}, {name: 'moe', age: 21}, {name: 'larry', age: 23}];
var youngest = _.chain(stooges)
.sortBy(’age‘)
.map(function(stooge){ return stooge.name + ' is ' + stooge.age; }) //["moe is 21", "larry is 23", "curly is 25"]
.first() //moe is 21
.value(); //chain结束的标志.
从上面的代码可以看出来,用上chain后,每次使用方法的时候不需要每次都重新定义一个变量。是不是很简洁好看呢?