underscore是非常好用的封装库,大小只有4KB,大多插件都是以underscore为基础;
underscore分5大部分;集合;数组;函数;对象;工具
集合:集合就是伪数组,虽然长的和数组一样,但是不存在数组的属性和方法;
假设我们需要数组的方法,他们没有,就需要人为的封装,还需要考虑兼容性,太麻烦了;
underscore就解决了这个问题; '_'为他的调用对象
1._.each(a,function(ele,index)) each的第一个参数是集合本身,第二个参数为函数,函数里两个参数(第一个参数:里面的元素,第二个参数:就是元素索引)
2._.map() 用法同_each() 但是他可以对里面元素进行加工,返回处理后的新数组;
3._.find(arr,function(){}) 找到第一个满足条件的元素,没有为undefined;
4._.filter() 找到所有满足条件的元素,返回新数组;
集合本身就是数组,所以数组也可以运用集合的方法;
数组:
1._.first() 返回数组第一个元素,传递参数n 返回从第一个到第n个参数;
2._.last() 返回数组中最后一个元素,传递参数n 返回从最后参数到n个参数;
3._.initial() 删除数组中最后一个元素,传递参数n 返回往前删除n个参数;
4._.rest() 删除数组中第一个参数,传递参数n,返回从前往后删n个参数;
5._.Object() 将数组转为对象,不管是几维;
函数:
1._.bind(fn,obj) 绑定完之后,返回绑定完后的函数fn,里面的this就是obj;
2._.delay(fn,5) 等待几秒后执行里面的函数;
3._.once() 这个函数只能调用一次,不许多个调用;
4._.after(n,fn) 在运行n次之后才会执行fn函数,(要保证,所有的异步都完成之后才执行)
5._before(n,fn) 创建一个函数fn调用不超过n次,如果超过n次,就不再执行,返回最后一个结果,并被记住;
对象:
1._.keys() 检索obj中所有可枚举的属性
2._.allKeys() 将对象上属性和他原型上的属性,列举出来;
3._.values() 返回所有的属性值;
4._.extend() 将n个对象合并到一个对象上;
5._clone() 浅拷贝;
工具:
1._times(n.fn) 函数调用n次,函数有个形参,返回为索引;
2._.random() 返回最大值和最小值的随机整数,如果1个参数,返回0到那个参数的随机数;
3._.mixin() 如果你有特别好的方法,可以通过这个方法追加到 Underscore.js(1.9.1) 中文文档 里面哦;
4._.now() 时间戳;
5._template() 模板,预编译模板;
这里只是将部分计较重要的方法和大家进行了介绍,
详情请看 https://www.html.cn/doc/underscore/#each