2

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

对于我的用例,它可以工作。. . 有点儿。

我想将 JSONSelect.match 添加到 lodash,以便我可以在链中使用它。它仅在您调用时有效_.match(selector, object),但在链中无效。

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

_.match('.name', 汽车);

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

但不是

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

这是一个小提琴 - 前 3 个按钮有效,最后一个按钮无效。我该如何解决?

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

4

1 回答 1

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 链接是自动的 w/o.chain()时,尽管.chain()lodash underscore兼容版本中受支持。

于 2013-04-09T02:56:40.013 回答