7.1 chain

7.1.1 语法

_.chain(obj)

7.1.2 说明

返回一个封装的对象. 在封装的对象上调用方法会返回封装的对象本身, 直到value方法调用为止.

7.1.3 代码示例

var stooges = [{
    name: 'curly',
    age: 25
}, {
    name: 'moe',
    age: 21
}, {
    name: 'larry',
    age: 23
}];

var youngest = _.chain(stooges)
    //排序
    .sortBy('age')

    //map
    .map(function(stooge) {
        return stooge.name + ' is ' + stooge.age;
    })

    //取第一个
    .first()

    //返回值
    .value();

console.log(youngest); //=> moe is 21

7.1.4 源码展示

_.chain = function(obj) {
    var instance = _(obj); //封装了对象
    instance._chain = true;
    return instance; //返回对象
};

7.1.5 两种方式的区别

var stooges = [{
    name: 'curly',
    age: 25
}, {
    name: 'moe',
    age: 21
}, {
    name: 'larry',
    age: 23
}];

//包装一个对象,执行对象上的方法
_(stooges).min('age'); //=>Object {name: "moe", age: 21}

//一个方法,传入对象和参数
_.min(stooges, 'age'); //=>Object {name: "moe", age: 21}