underscore 的源码该如何阅读?

2018-04-03
阅读 2 分钟
3.2k
这个系列算是 JavaScript 专题系列的番外篇,总共写了 8 篇,重点介绍了 underscore 中的代码组织、链式调用、内部函数、模板引擎、工具函数等内容,旨在帮助大家阅读源码,以及写出自己的 undercore。

underscore 系列之字符实体与 _.escape

2018-03-29
阅读 7 分钟
4.6k
underscore 提供了 _.escape 函数,用于转义 HTML 字符串,替换 &, <, >, ", ', 和 ` 字符为字符实体。

underscore 系列之实现一个模板引擎(下)

2018-01-25
阅读 10 分钟
3.6k
我们的本意是想打印带 "" 包裹的 Vikings 字符串,但是在 JavaScript 中,字符串使用单引号或者双引号来表示起始或者结束,这段代码会报 Unexpected identifier 错误。

underscore 系列之实现一个模板引擎(上)

2017-12-20
阅读 7 分钟
4.3k
前言 underscore 提供了模板引擎的功能,举个例子: {代码...} 感觉好像没有什么强大的地方,再来举个例子: 在 HTML 文件中: {代码...} JavaScript 文件中: {代码...} 效果为: 那么该如何实现这样一个 _.template 函数呢? 实现思路 underscore 的 template 函数参考了 jQuery 的作者 John Resig 在 2008 年发表的一...

underscore 系列之防冲突与 Utility Functions

2017-12-14
阅读 4 分钟
4.1k
所以 underscore 提供了 noConflict 功能,可以放弃 underscore 的控制变量 _,返回 underscore 对象的引用。

underscore 系列之内部函数 restArgs

2017-12-06
阅读 4 分钟
3.1k
partial 在《 JavaScript 专题之偏函数》中,我们写了一个 partial 函数,用来固定函数的部分参数,实现代码如下: {代码...} rest parameter ES6 为我们提供了剩余参数(rest parameter)语法,允许我们将一个不定数量的参数表示为一个数组。 {代码...} 我们可以利用这一特性简化 partial 实现的代码: {代码...} 写个 ...

underscore 系列之内部函数 cb 和 optimizeCb

2017-11-29
阅读 7 分钟
5.3k
map 方法除了传入要处理的数组之外,还有两个参数 iteratee 和 context,类似于 Array.prototype.map 中的其他两个参数,其中 iteratee 表示处理函数,context 表示指定的执行上下文,即 this 的值。

underscore 系列之链式调用

2017-11-22
阅读 7 分钟
4.3k
前言 本文接着上篇《underscore 系列之如何写自己的 underscore》,阅读本篇前,希望你已经阅读了上一篇。 jQuery 我们都知道 jQuery 可以链式调用,比如: {代码...} 我们写个简单的 demo 模拟链式调用: {代码...} jQuery 之所以能实现链式调用,关键就在于通过 return this,返回调用对象。再精简下 demo 就是: {代...

underscore 系列之如何写自己的 underscore

2017-11-15
阅读 9 分钟
5k
在 《JavaScript 专题系列》 中,我们写了很多的功能函数,比如防抖、节流、去重、类型判断、扁平数组、深浅拷贝、查找数组元素、通用遍历、柯里化、函数组合、函数记忆、乱序等,可以我们该如何组织这些函数,形成自己的一个工具函数库呢?这个时候,我们就要借鉴 underscore 是怎么做的了。