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 · 4964 阅读 · 0 评论 -
underscore.js中如何判断两个对象的内容相同
在js中,我们知道对象是引用类型,我们使用时定义的变量都是指向其内存地址。一个内存地址只对应一个对象,内存地址不一样,两个对象就是内容再相同也是不相等的。 有时候我们指的两个对象相等指的是内容相同,那么此时我们应该如何去比较两个对象内容相同呢,underscore.js给出了两个主要函数:eq和deepEq函数。 eq主要是进行基本的判断,比如+0和-...原创 2017-05-28 15:49:42 · 3172 阅读 · 2 评论 -
underscore.js中 cb 函数与optimizeCb函数
在解读underscore.js源码的时候,首当其冲地便遇上了这两个函数,对于哦呜这么个小白来说,这段代码的作用和意义真的如同天书难懂。废话不多说,我们先归纳一下整个underscore.js中都那些函数用到了这两个函数1、optimizeCb(optimize:使最优化和尽可能地完善) cb 、 _.each 、_.times2、cb _.map 、 _.filter 、 _.r...原创 2017-05-20 14:53:53 · 2262 阅读 · 0 评论 -
underscore.js如何实现全局变量和链式调用
underscore.js如何得到全局变量 _ :在整个Underscore.js中,没有通过new便能得到_对象。其实,在underscore.js中是以函数为对象(function也是对象),将所有的方法都是挂载在这个构造函数上面,然后将这个构造函数挂载在全局变量上,这样便不需要通过new去使用_。underscore.js的链式调用:如果要实现链式调用,必须要在每次的调用后返回原创 2017-05-18 13:47:56 · 1083 阅读 · 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 · 424 阅读 · 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 · 508 阅读 · 0 评论