Underscore——JS函数库
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826065.html
underscore是什么——它是一个js函数库
jQuery统一了不同浏览器之间的DOM操作的差异,让我们可以简单地对DOM进行操作,而underscore则提供了一套完善的函数接口,让我们更方便地在JavaScript中实现函数式编程。
Underscore.js是一个很精干的库,压缩后只有6KB,它提供了100多个函数,弥补了js标准库的不足,包括常用的: map, filter, invoke,函数绑定, JavaScript模板功能,创建快速索引, 强类型相等测试等等。
这些方法大致上可以分成:集合类操作函数(collection)、数组操作函数(array)、高阶函数(function)、对象操作函数(object)和工具函数(utility)五大类。
underscore怎么用
jQuery在加载时,会把自身绑定到唯一的全局变量$
上,underscore与其类似,会把自身绑定到唯一的全局变量_
上,这也是为啥它的名字叫underscore(下划线)的原因。
Underscor.js定义了一个下划线(_)对象,函数库的所有方法都属于这个对象。
$(选择器)操作DOM,而_.fun()调用函数。
一:Collections操作函数
underscore为集合类对象提供了一致的接口。集合类是指Array和Object,暂不支持Map和Set。
二:Arrays操作函数
underscore为Array
提供了许多工具类方法,可以更方便快捷地操作Array
。
三:Functions高阶函数
提供了大量JavaScript本身没有的高阶函数。
绑定运行环境和参数
在不同的运行环境下,javaScript函数内部的变量所在的上下文是不同的。这种特性会给程序带来不确定性,为了解决这个问题,Underscore.js提供了两个方法,用来给函数绑定上下文。
bind:十分强大,用的比较多
_.bind(function, object, *arguments) 绑定函数 function 到对象 object 上, 也就是无论何时调用函数, 函数里的 this 都指向这个 object.
无论何时调用该函数, 函数里的 this 都指向这个 object。
四:Objects操作函数
提供了大量针对Object的函数。
五:实用功能
六:Chaining链式语法
Underscore——JS函数库的更多相关文章
- Underscore.js 函数节流简单测试
函数节流在日常的DOM界面数据交互中有比较大的作用,可以减少服务器的请求,同时减少客户端的内存影响 Underscore.js 本省就包含了函数节流的处理函数 _.throttle 和 _.debo ...
- 在easyUI开发中,出现jquery.easyui.min.js函数库问题
easyUI是jquery的一个插件,是民间的插件.easyUI使用起来很方便,里面有网页制作的最重要的三大方块:javascript代码.html代码和Css样式.我们在导入easyUI库后,可以直 ...
- underscore.js 一个强大的js函数库
Underscore提供的100多个函数,主要涉及对Collection.Object.Array.Function的操作: Collections(集合) each, map, reduce, re ...
- JS函数库Underscore.js
http://underscorejs.org/ http://www.css88.com/doc/underscore/ http://www.bootcss.com/p/underscore/
- 我的js函数库(持续更新)
常用js初始化函数 function id(obj) { return document.getElementById(obj); } function bind(obj, ev, fn) { if ...
- Underscore.js工具库
Underscore 是一个 JavaScript 工具库,它提供了一整套函数式编程的实用功能,但是没有扩展任何 JavaScript 内置对象. 他解决了这个问题:“如果我面对一个空白的 HTML ...
- 苹果浏览器Safari对JS函数库中newDate()函数中的参数的解析中不支持形如“2020-01-01”形式
苹果浏览器safari对new Date('1937-01-01')不支持,用.replace(/-/g, "/")函数替换掉中划线即可 如果不做处理,会报错:invalid da ...
- js函数库-D3
推荐: https://www.cnblogs.com/createGod/p/6884629.html
- underscore.js源码研究(8)
概述 很早就想研究underscore源码了,虽然underscore.js这个库有些过时了,但是我还是想学习一下库的架构,函数式编程以及常用方法的编写这些方面的内容,又恰好没什么其它要研究的了,所以 ...
随机推荐
- 【AGC009E】Eternal Average
[AGC009E]Eternal Average 题面 洛谷 题解 神仙题.jpg 我们把操作看成一棵\(k\)叉树,其中每个节点有权值,所有叶子节点(共\(n+m\)个)就是\(0\)或\(1\). ...
- PATB1031查验身份证
这一题遇见的错误有很多,学会了一些知识点 使用了strcpy函数,前是需要复制的数组,后面是被复制的数组 关于字符,如果是非数字可以使用 <='9' && >='0'来判断 ...
- (近万字)一篇文章带你了解HTML5和CSS3开发基础与应用-适合前端面试必备
作者 | Jeskson 来源 | 达达前端小酒馆 HTML5和CSS3开发基础与应用,详细说明HTML5的新特性和新增加元素,CSS3的新特性,新增加的选择器,新的布局,盒子模型,文本,边框,渐变, ...
- pytorch指定使用的单个GPU
1.pycharm里直接在代码中加入下面 import os os.environ["CUDA_VISIBLE_DEVICES"] = "2" 2.在终端指定使 ...
- c# MongoDB分页辅助类,支持多条件查询
创建一个获取MongoDB数据库实例的类 public class Db { private static IMongoDatabase db = null; private static reado ...
- Shell脚本之四 内建命令
所谓 Shell 内建命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件. 可以使用 type 来确定一个命令是否是内建命令: [root@localhost ~]# type ...
- cad.net 定义lisp
首先是传参型lisp的定义: (addLine (getpoint)) //定义lisp传入参数的例子 //复制到命令栏运行: (addLine (getpoint)) [LispFunction(& ...
- cad.net cad宋体问号 删除 KT_ST.ttf
我的两台电脑是win10的,(可能这个问题也存在在xp.win7.win8.......毕竟十年前我就遇到过了.......) 一台电脑的cad字体设置为"宋体",另一台电脑打开之 ...
- SyntaxError: Non-ASCII character ‘\xe5’ in file 的解决办法
在Python脚本中包含中文的时候,会遇到编码错误.例如: 出现SyntaxError: Non-ASCII character ‘\xe5’ in file 的错误. 解决办法:是因为编码有问题,所 ...
- kafka作为elk缓存使用
ELK集群在大规模的日志收集中面临着数据量大,收集不及时,或宕机的风险,可以选择单节点的redis,但是相比redis,kafka集群高可用的特性,更优,下面来配置kafka集群配置elk作为缓存的方 ...