![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
underscore源码分析
WEB_YH
一只会敲代码的猿
展开
-
for .... in 存在的兼容问题你造吗?
在js中for_in主要是用来遍历对象的可枚举属性,包括原型链上的属性。然而for_in在IE < 9下可能会出现问题。 for_in要出现问题必须满足两个条件: 1:IE < 9; 2:某些不可枚举的属性被重写。 在js中当一些不可枚举的属性比如toString被重写后,它会变成可枚举。然而当你碰上了IE<9,这些被重写的属性依旧是不可枚举无法使用 for_in去遍历。那么如何在IE<9的情况下原创 2017-05-23 18:14:00 · 4925 阅读 · 0 评论 -
underscore.js中如何判断两个对象的内容相同
在js中,我们知道对象是引用类型,我们使用时定义的变量都是指向其内存地址。一个内存地址只对应一个对象, 内存地址不一样,两个对象就是内容再相同也是不相等的。 有时候我们指的两个对象相等指的是内容相同,那么此时我们应该如何去比较两个对象内容相同呢,underscore.js 给出了两个主要函数:eq和deepEq函数。 eq主要是进行基本的判断,比如+0和-...原创 2017-05-28 15:49:42 · 3100 阅读 · 2 评论 -
underscore.js中 cb 函数与optimizeCb函数
在解读underscore.js源码的时候,首当其冲地便遇上了这两个函数,对于哦呜 这么个小白来说,这段代码的作用和意义真的如同天书难懂。 废话不多说,我们先归纳一下整个underscore.js中都那些函数用到了这两个函数 1、optimizeCb(optimize:使最优化和尽可能地完善) cb 、 _.each 、_.times 2、cb _.map 、 _.filter 、 _.r...原创 2017-05-20 14:53:53 · 2244 阅读 · 0 评论 -
underscore.js如何实现全局变量和链式调用
underscore.js如何得到全局变量 _ : 在整个Underscore.js中,没有通过new便能得到_对象。 其实,在underscore.js中是以函数为对象(function也是对象),将所有的方法都是挂载在这个构造函数上面,然后将这个构造函数挂载 在全局变量上,这样便不需要通过new去使用_。 underscore.js的链式调用: 如果要实现链式调用,必须要在每次的调用后返回原创 2017-05-18 13:47:56 · 1064 阅读 · 0 评论 -
underscore.js中为什么用void 0来验证undefined
在javascript中,undefined既不是关键字,又不是保留字。它只是全局对象的一个属性,可以被重写。例如: (function(){ var undefined = 1; console.log(undefined);//1 })() 因为undefined有如此弊端,所以不能用undefined去检测一个值是否为undefined类型。为了能够完美检测undefine原创 2017-05-21 10:34:57 · 409 阅读 · 0 评论 -
underscore.js中的类型检测
在js中我们通常判断类型通常用 typeof ;但是这种判断方法往往得不到具体的类,比如typeof []得到是object而不是 Array。 普通类型: 在underscore.js中使用的是 Object.prototype.toString.call(obj)来对一些普通类型进行判断。 Object.prototype.toString.call(obj)会返回obj所属的具体类型。如:原创 2017-05-22 11:03:42 · 473 阅读 · 0 评论