使用mixin()函数与lodash和JSONSelect

时间:2013-04-08 19:43:45

标签: underscore.js lodash

我知道lodash(和下划线)有一个mixin()函数,它可以让你用你自己的属性扩展lodash。

对于我的用例,它有效。 。 。那种。

我想将JSONSelect.match添加到lodash,以便我可以在链中使用它。当您只调用_.match(selector, object)但不在链中时,它会起作用。

换句话说,我可以这样做:

  

_。match('。name',cars);

  

_。match('。name',_(cars).chain()。value());

但不是

  

_(汽车).chain()匹配( '姓名')值();

这是一个小提琴 - 前三个按钮工作,最后一个没有。我该如何解决?

http://jsfiddle.net/marclar/sBGR6/

1 个答案:

答案 0 :(得分:3)

您的使用不正确。 通常,Underscore / Lo-Dash方法遵循以下模式:

_.foo(value, arg1, arg2);

当链接转移到

_(value).chain().foo(arg1, arg2);

并在内部向value提供_.foo(value, ...)

因此,在您的示例中,_.match('.name', cars)应更改为_.match(cars, '.name')。 这将允许_(cars).chain().match('.name').value()工作。

请谨记使用Lo-Dash链接是自动的.chain(),尽管.chain() compat版本支持lodash underscore