Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么是_(项目)“;当调用JS函数时,您会怎么做?_Javascript_Underscore.js - Fatal编程技术网

Javascript 什么是_(项目)“;当调用JS函数时,您会怎么做?

Javascript 什么是_(项目)“;当调用JS函数时,您会怎么做?,javascript,underscore.js,Javascript,Underscore.js,这里是Javascript新手。在学习JavaScript中的高阶函数时,我看到了以下示例。在调用.chain()之前,是否有人能解释一下(项)的作用?多谢各位 //items is an array with nested objects as elements var count = _(items).chain() .flatten() .reduce(.....) .value(); \u.chain()相当于\u.chain(items)。这两种方

这里是Javascript新手。在学习JavaScript中的高阶函数时,我看到了以下示例。在调用.chain()之前,是否有人能解释一下(项)的作用?多谢各位

//items is an array with nested objects as elements
var count = _(items).chain()
      .flatten()
      .reduce(.....)
      .value();
\u.chain()
相当于
\u.chain(items)
。这两种方法都是用来实现的,其中方法被链接起来,作用于先前的结果。因此,必须以某种方式包装您开始的第一个值,以便它能够理解这些下划线方法

(items)
调用本身(不带
.chain()
)将提供下划线的方法,但无法进一步链接结果。调用
\uuu.chain(items)
不仅提供对下划线方法的访问,而且还确保此行为继续,允许进一步链接下划线方法

更改日志有助于理解为何存在这两种语法:

0.4.0-2009年11月7日-Diff-Docs

现在可以以面向对象的样式调用所有下划线函数,如下所示:
([1,2,3]).map(…)

1.2.4-2012年1月4日-差异-文件

您现在可以(而且可能应该,因为它更简单)编写
.chain(list)
,而不是
\u(list).chain()


因此,您引用的语法是“较旧”的语法。

是吗?事实上,在您的辩护中,下划线文档在解释
\u
函数本身的功能方面做得很糟糕。我在这里发布之前就做过。我只在文件里找到了,但没有明确的解释。如果你是落选的选民,我建议你要比以一种居高临下的方式说话更乐于助人。一点小费对我很有帮助。不要害怕看源代码。打开库,搜索uz()函数并读取它。您不仅可以看到它是如何工作的,还可以看到良好的功能组合等。通常,您学到的知识比文档所能为您提供的技术多得多。。在美国社会有一句很好的话……“这只是JS”,这不是魔法!我不是选民。基本上,
\uu
函数“包装”对象,从而可以执行那些链接调用。