【问题标题】:What is the underscore function for?下划线功能有什么用?
【发布时间】:2013-05-04 20:24:53
【问题描述】:

我一直使用下划线作为静态集合。

underscore 函数有什么用途:

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

你将如何使用它的一个例子是什么?

【问题讨论】:

  • 真的很聪明的问题,认真的。

标签: javascript underscore.js


【解决方案1】:

您也可以使用 Underscore 作为包装函数,以获得更多 OOP-like style

_(val).method(…);
// instead of the equal
_.method(val, …);

这些包装对象也允许chaining:

_.chain(val).method1(…).method2(…);
// or
_(val).chain().method1(…).method2(…);

【讨论】:

    【解决方案2】:

    你用它包装对象:

    _([1, 2, 3, 4]);
    

    然后在被包裹的对象上使用下划线函数:

    _([1, 2, 3, 4]).shuffle()
    

    【讨论】:

    • 这只是一个变量名——他们本可以称之为a,但_显然适用于已经被称为下划线的脚本
    • _ 函数实际上不允许链接下划线函数 - 上面的示例仅适用于 'map' 和 'filter' 是内置数组函数。他们不会使用下划线的实现,因此您可能会遇到兼容性问题,例如IE 8. 使用 _.chain 函数进行链接。
    最近更新 更多