写在前面:学习是以1.5.2版本为例
1.6.0 2014.2.10
1、数组函数新增partition(将数组分割为两个数组)
_.partition(array, predicate)
利用partition条件分割为两个数组,一个为true的,一个为false的
_.partition([0, 1, 2, 3, 4, 5], isOdd);
=> [[1, 3, 5], [0, 2, 4]]
2、对象函数新增property(返回对象函数)
_.property(key)
返回一个函数本身将返回任何传入的对象的关键属性。
var mo = {name: 'moe'};
'moe' === _.property('name')(mo);
=> true
3、对象函数新增matches(返回包含指定对象函数)
_.matches(attrs)
返回一个函数,将告诉你如果传入的对象包含了所有存在的属性的键/值特性。
function (obj) { if (obj === attrs) return true;
var ready = _.matches({selected: true, visible: true});
var list = [{a : 'a'},{b:'b'}];
var readyToGoList = _.filter(list, ready);
=>{a:"a"}
4、新增实用函数constant(返回包含参数的值得函数)
_.constant(value)
创建一个返回值和参数值相等的函数,是_.identity的高级命令
var moe = {name: 'moe'};
moe === _.constant(moe)();
=> true
5、新增函数now(返回时间戳)
_.now()对debounce 和throttle有用
_.now();
=> 1392066795351
6、修订函数partial(可以预留参数位置)
_.partial(function, *arguments)
原来:局部应用一个函数填充在任意数值的参数, 不改变其动态this值。和bind方法很相近。
var add = function(a, b) { return a + b; };
add5 = _.partial(add, 5);
add5(10);
=> 15
新增:可以用_为参数预留位置,在调用时填充
var add = function(a, b) { return a + b; };
add5 = _.partial(add, _);
add5(10, 1)
=>11