lodash源码分析之isObjectLike

2018-10-02
阅读 2 分钟
1.5k
这世界上之所以会有无主的东西,方法是因为有人失去了记忆。——王小波《万寿寺》 本文为读 lodash 源码的第二十篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 源码分析 isObjectLike 的源码很短,如下: {代码...} 其实就是使用 typeof 操作符,如果...

lodash源码分析之获取数据类型

2018-04-07
阅读 4 分钟
2.8k
所有的悲伤,总会留下一丝欢乐的线索,所有的遗憾,总会留下一处完美的角落,我在冰峰的深海,寻找希望的缺口,却在惊醒时,瞥见绝美的阳光!——几米

lodash源码分析之数组的差集

2018-03-14
阅读 3 分钟
4.1k
外部世界那些破旧与贫困的样子,可以使我内心世界得到平衡。——卡尔维诺《烟云》 本文为读 lodash 源码的第十七篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 作用与用法 baseDifference 可以用来获取指定数组与另一个数组的差集。 这个函数是内部函...

lodash源码分析之baseFindIndex中的运算符优先级

2018-02-05
阅读 2 分钟
3.1k
我悟出权力本来就是不讲理的——蟑螂就是海米;也悟出要造反,内心必须强大到足以承受任何后果才行。——北岛《城门开》 本文为读 lodash 源码的第十篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 作用与用法 baseFindIndex 是内部方法,其作用类似于ES...

lodash源码分析之缓存使用方式的进一步封装

2018-01-29
阅读 2 分钟
2.1k
在之前的《lodash源码分析之Hash缓存》和《lodash源码分析之List缓存》介绍过 lodash 的两种缓存方式,在《lodash源码分析之缓存方式的选择》中介绍过这两种缓存方式和 Map 的封装,lodash 会根据缓存类型来选择最优的缓存方式。

lodash源码分析之缓存方式的选择

2018-01-22
阅读 5 分钟
2.9k
在《lodash源码分析之Hash缓存》和《lodash源码分析之List缓存》介绍了 lodash 的两种缓存方式,这两种缓存方式都实现了和 Map 一致的数据管理接口,其中 List 缓存只在不支持 Map 的环境中使用,那何时使用 Hash 缓存,何时使用 Map 或者 List 缓存呢?这就是 MapCache 类所需要做的事情。

lodash源码分析之List缓存

2018-01-15
阅读 4 分钟
1.8k
昨日我沿着河岸/漫步到/芦苇弯腰喝水的地方顺便请烟囱/在天空为我写一封长长的信 潦是潦草了些/而我的心意/则明亮亦如你窗前的烛光/稍有暧昧之处/势所难免/因为风的缘故 ——洛夫《因为风的缘故》

lodash源码分析之自减的两种形式

2018-01-09
阅读 2 分钟
1.7k
这个世界需要一个特定的恶人,可以供人们指名道姓,千夫所指:“全都怪你”。——村上春树《当我谈跑步时我谈些什么》 本文为读 lodash 源码的第六篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 本篇分析的是 assocIndexOf 函数。 作用与用法 assocInde...

lodash源码分析之NaN不是NaN

2018-01-04
阅读 3 分钟
1.7k
暗恋之纯粹,在于不求结果,完全把自己锁闭在一个单向的关系里面。——梁文道《暗恋到偷窥》 本文为读 lodash 源码的第五篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 本篇分析的是 eq 函数。 作用与用法 eq 函数用来比较两个值是否相等。遵循的是 S...

lodash源码分析之Hash缓存

2018-01-02
阅读 4 分钟
2.7k
在那小小的梦的暖阁,我为你收藏起整个季节的烟雨。——洛夫《灵河》 本文为读 lodash 源码的第四篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 作用与用法 Hash 顾名思义,就是要有一个离散的序列,根据 key 来储取数据。而在 javascript 中,最适合...

lodash源码分析之compact中的遍历

2017-12-18
阅读 3 分钟
1.8k
小时候,乡愁是一枚小小的邮票, 我在这头, 母亲在那头。 长大后,乡愁是一张窄窄的船票, 我在这头, 新娘在那头。 后来啊, 乡愁是一方矮矮的坟墓, 我在外头, 母亲在里头。 而现在, 乡愁是一湾浅浅的海峡, 我在这头, 大陆在那头。 ——余光中《乡愁》

lodash源码分析之chunk的尺与刀

2017-12-07
阅读 2 分钟
3k
以不正义开始的事情,必须用罪恶使它巩固。——莎士比亚《麦克白》 最近很多事似乎印证了这句话,一句谎言最后要用一百句谎言来圆谎。 本文为读 lodash 源码的第二篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 作用与用法 chunk 函数可以将一个数组...

读lodash源码之从slice看稀疏数组与密集数组

2017-11-20
阅读 4 分钟
4.1k
卑鄙是卑鄙者的通行证,高尚是高尚者的墓志铭。 ——北岛《回答》 看北岛就是从这两句诗开始的,高尚者已死,只剩卑鄙者在世间横行。 本文为读 lodash 源码的第一篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 引言 你可能会有点奇怪,原生的 slice ...

读Zepto源码之Stack模块

2017-10-16
阅读 2 分钟
2.5k
Stack 模块为 Zepto 添加了 addSelf 和 end 方法。 读 Zepto 源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2.0 改写原有的方法 {代码...} Stack 模块改写了以上这些方法,这些方法在调用的时候,会为返回的结果 ret 添加 prevObject 的属性,用来保存原来的集合。 .addSe...

读Zepto源码之Selector模块

2017-09-18
阅读 5 分钟
4.1k
Selector 模块是对 Zepto 选择器的扩展,使得 Zepto 选择器也可以支持部分 CSS3 选择器和 eq 等 Zepto 定义的选择器。

读Zepto源码之assets模块

2017-09-11
阅读 2 分钟
2k
assets 模块是为解决 Safari 移动版加载图片过大过多时崩溃的问题。因为没有处理过这样的场景,所以这部分的代码解释不会太多,为了说明这个问题,我翻译了《How to work around the Mobile Safari image resource limit》这篇文章作为附文(《怎样处理 Safari 移动端对图片资源的限制》),更详细地解释了这个模块的应...

读Zepto源码之Deferred模块

2017-07-31
阅读 10 分钟
1.7k
Deferred 模块也不是必备的模块,但是 ajax 模块中,要用到 promise 风格,必需引入 Deferred 模块。Deferred 也用到了上一篇文章《读Zepto源码之Callbacks模块 )》介绍的 Callbacks 模块。

读Zepto源码之Callbacks模块

2017-07-23
阅读 9 分钟
1.8k
Callbacks 模块并不是必备的模块,其作用是管理回调函数,为 Defferred 模块提供支持,Defferred 模块又为 Ajax 模块的 promise 风格提供支持,接下来很快就会分析到 Ajax模块,在此之前,先看 Callbacks 模块和 Defferred 模块的实现。

读Zepto源码之Event模块

2017-07-18
阅读 20 分钟
4.4k
Event 模块是 Zepto 必备的模块之一,由于对 Event Api 不太熟,Event 对象也比较复杂,所以乍一看 Event 模块的源码,有点懵,细看下去,其实也不太复杂。

读Zepto源码之属性操作

2017-06-25
阅读 14 分钟
4.6k
如果属性值 value 存在,则调用元素的原生方法 setAttribute 设置对应元素的指定属性值,否则调用 removeAttribute 删除指定的属性。

读 Zepto 源码之样式操作

2017-06-11
阅读 12 分钟
4.2k
这个函数是用来返回一个正则表达式,这个正则表达式是用来匹配元素的 class 名的,匹配的是如 className1 className2 className3 这样的字符串。

读 Zepto 源码之操作 DOM

2017-06-04
阅读 10 分钟
1.7k
这篇依然是跟 dom 相关的方法,侧重点是操作 dom 的方法。 读Zepto源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2.0 .remove() {代码...} 删除当前集合中的元素。 如果父节点存在时,则用父节点的 removeChild 方法来删掉当前的元素。 相似方法生成器 zepto 中 after、 p...

读 Zepto 源码之集合元素查找

2017-05-30
阅读 11 分钟
3.9k
之前有一章《读Zepto源码之内部方法》是专门解读 zepto 中没有提供给外部使用的内部方法的,但是有几个涉及到 dom 的方法没有解读,这里先将本章用到的方法解读一下。

读Zepto源码之集合操作

2017-05-22
阅读 4 分钟
3.1k
接下来几个篇章,都会解读 zepto 中的跟 dom 相关的方法,也即源码 $.fn 对象中的方法。 读Zepto源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2.0 .forEach() {代码...} 因为 zepto 的 dom 集合是类数组,所以这里只是简单地复制了数组的 forEach 方法。 具体的 forEach ...

读 Zepto 源码之神奇的 $

2017-05-14
阅读 8 分钟
3.3k
经过前面三章的铺垫,这篇终于写到了戏肉。在用 zepto 时,肯定离不开这个神奇的 $ 符号,这篇文章将会看看 zepto 是如何实现 $ 的。

读 zepto 源码之工具函数

2017-04-30
阅读 6 分钟
3.8k
Zepto 提供了丰富的工具函数,下面来一一解读。 源码版本 本文阅读的源码为 zepto1.2.0 $.extend $.extend 方法可以用来扩展目标对象的属性。目标对象的同名属性会被源对象的属性覆盖。 $.extend 其实调用的是内部方法 extend, 所以我们先看看内部方法 extend 的具体实现。 {代码...} extend 的第一个参数 taget 为目标...

读 Zepto 源码之内部方法

2017-04-12
阅读 6 分钟
5.8k
这里用的是数组的 filter 方法,过滤出 item != null 的元素,组成新的数组。这里删除掉 null 很容易理解,为什么还可以删除 undefined 呢?这是因为这里用了 != ,而不是用 !== ,用 != 时, null 各 undefined 都会先转换成 false 再进行比较。

读Zepto源码之代码结构

2017-04-05
阅读 2 分钟
3.4k
虽然最近工作中没有怎么用 zepto ,但是据说 zepto 的源码比较简单,而且网上的资料也比较多,所以我就挑了 zepto 下手,希望能为以后阅读其他框架的源码打下基础吧。