0%

源码版本 1.4.4

Array.prototype.reduce()

ECMAScript 5 提供了两个归并数组的方法:reduce()reduceRight()。这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。其中,reduce() 方法从数组的第一项开始,逐个遍历到最后。而 reduceRight() 则从数组的最后一项开始,向前遍历到第一项。

arr.reduce(callback,[initialValue]) 接收两个参数,第一个参数为一个回调函数,数组中的每个元素都会被传入此函数中迭代;第二个参数为一个可选的初始值,它的值会被作为回调函数的第一个参数传入。

这里重点在于理解 reduce() 的第一个参数 callback,它是一个回调函数,这个回调函数接收四个参数:

  • accumulator 上一次调用回调返回的值,或者是提供的初始值(initialValue)
  • currentValue 数组中正在处理的元素
  • currentIndex 数组中正在处理的元素索引,如果提供了 initialValue ,从0开始;否则从1开始
  • array 调用 reduce 的数组
阅读全文 »

源码版本 1.4.4

创建 Underscore 对象的引用

1
2
3
4
5
var _ = function(obj) {
if (obj instanceof _) return obj;
if (!(this instanceof _)) return new _(obj);
this._wrapped = obj;
};

上面的代码创建了 undersore 的引用,然而我对执行顺序却理得不是很清楚,尤其是上面的第三行,于是我尝试在 chrome 中 debug 了一下。不过在理解之前我们先复习一下使用 new 调用构造函数的具体流程,以及 instanceof 操作符的用法。

阅读全文 »

一直都羡慕别人那高大上的技术博客,在得知 Hexo 这款方便的工具后,自己终于决定也搭建一个属于自己的博客。其一是为了记录所学内容,其二则是在不断的折腾之中学习新的内容吧。

图片与内容不相关

阅读全文 »