调用JS函数时“_(items)”做了什么?
What does "_(items)" do when calling a JS function?
Javascript 这里是新手。当我在 JavaScript 中学习高阶函数时,我看到了以下示例。有人可以解释 _(item) 在调用 .chain() 之前做了什么吗?谢谢。
//items is an array with nested objects as elements
var count = _(items).chain()
.flatten()
.reduce(.....)
.value();
_(items).chain()
等同于 _.chain(items)
。两者都用于使 object-oriented style syntax 成为可能,其中链接的方法作用于先前的结果。因此,您开始的第一个值必须以某种方式 wrapped 以便它理解这种下划线方法。
_(items)
调用本身(没有 .chain()
)将为您提供下划线的方法,但结果不能进一步链接。 _.chain(items)
调用不仅提供对下划线方法的访问,而且确保此行为继续,允许进一步链接下划线方法。
更改日志有助于理解为什么会有这两种语法:
0.4.0 — November 7, 2009 — Diff — Docs
All Underscore functions can now be called in an object-oriented style, like so: _([1, 2, 3]).map(...);
.
1.2.4 — January 4, 2012 — Diff — Docs
You now can (and probably should, as it's simpler) write _.chain(list)
instead of _(list).chain()
.
所以你引用的语法是“旧”语法。
Javascript 这里是新手。当我在 JavaScript 中学习高阶函数时,我看到了以下示例。有人可以解释 _(item) 在调用 .chain() 之前做了什么吗?谢谢。
//items is an array with nested objects as elements
var count = _(items).chain()
.flatten()
.reduce(.....)
.value();
_(items).chain()
等同于 _.chain(items)
。两者都用于使 object-oriented style syntax 成为可能,其中链接的方法作用于先前的结果。因此,您开始的第一个值必须以某种方式 wrapped 以便它理解这种下划线方法。
_(items)
调用本身(没有 .chain()
)将为您提供下划线的方法,但结果不能进一步链接。 _.chain(items)
调用不仅提供对下划线方法的访问,而且确保此行为继续,允许进一步链接下划线方法。
更改日志有助于理解为什么会有这两种语法:
0.4.0 — November 7, 2009 — Diff — Docs
All Underscore functions can now be called in an object-oriented style, like so:
_([1, 2, 3]).map(...);
.1.2.4 — January 4, 2012 — Diff — Docs
You now can (and probably should, as it's simpler) write
_.chain(list)
instead of_(list).chain()
.
所以你引用的语法是“旧”语法。