面向对象风格的支持

我们知道,在函数式编程范式中,函数是拿来就用的,即便对象,也只是函数的一个参数,被函数支配:

const arr = [1, 2, 3];
_.map(arr, n => n*2);

而在面向对象的世界中,函数往往是隶属于某个对象的 成员方法

const arr = [1, 2, 3];
arr.map(n => n*2);

_()

虽然 underscore 是推崇函数式编程(FP)的,但是也提供了以面向对象风格的来进行函数调用,仅需要通过 _() 来包裹下对象即可:

_([1, 2, 3]).map(n => n*2);

underscore 基础篇 -- 结构一节中,我们介绍过 _ 是一个函数对象,当我们进行如下调用时:

_([1,2,3]);

会创建一个新的 underscore 对象(从而能够调用 underscore 提供的方法),并且记录被包裹的对象为 obj

var _ = function (obj) {
  if (obj instanceof _) return obj;
  if (!(this instanceof _)) return new _(obj);
  this._wrapped = obj;
};

results matching ""

    No results matching ""