Javascript 在这种情况下是什么意思

Javascript 在这种情况下是什么意思,javascript,json,d3.js,Javascript,Json,D3.js,在查看d3.js中的一些代码以创建树时,我发现使用了符号“u”,我不知道它在做什么,也没有具体的解决方案。我想问的问题是 我引用的程序的完整代码如下 我无法理解展平函数是如何工作的,尤其是为什么要使用 function flatten(root) { var nodes = [], i = 0; function recurse(node) { if (node.children) node.children.forEach(recurse); if (node

在查看d3.js中的一些代码以创建树时,我发现使用了符号“u”,我不知道它在做什么,也没有具体的解决方案。我想问的问题是

我引用的程序的完整代码如下

我无法理解展平函数是如何工作的,尤其是为什么要使用

function flatten(root) {
  var nodes = [],
    i = 0;

  function recurse(node) {
    if (node.children) node.children.forEach(recurse);
    if (node._children) node._children.forEach(recurse);
    if (!node.id) node.id = ++i;
    nodes.push(node);
  }

  recurse(root);
  return nodes;
}

非常感谢您的帮助。

不知道d3.js的具体情况,但在JavaScript中,此
\uu
只是变量/属性名称的一部分。就是这样,名字是
\u children
节点
对象中有一个名为
children
的属性,另一个名为
\u children
的属性。请看一下这是一个重复的问题。按惯例下划线表示私有财产。在您的示例中,它用于存储原始
子属性的副本,以便以后能够将其还原为原始值。主要逻辑发生在函数
collapse()
@lealceldero中。我在数据文件中找不到任何称为_children的内容(提供完整的代码,请随意检查,我可能遗漏了一些内容).@altocumulus Hello你能给我链接一些文档或一个我仍然无法理解的示例吗?为什么我们需要重复的存储或私有/公共属性,因为我对js非常陌生。@RushikeshMokashi Malcolm Maclean的书中有一章介绍了这个主题。