语法是什么d._children = d.children;在d3.js中代表什么?

时间:2014-01-06 00:08:31

标签: javascript d3.js

在树可视化的各种示例中,例如此collapsible tree示例,使用了语法d._children = d.children;。例如,在上面示例的代码块中:

// Toggle children on click.  
function click(d) {
  if (d.children) {
    d._children = d.children;
    d.children = null;
  } else {
    d.children = d._children;
    d._children = null;
  }
  update(d);
}

语法d._children的确切含义是什么?对我来说,目前尚不清楚 这是定义的,如果它是d3.js特定的或JavaScript语法。

欢迎任何涉及此类方案的树遍历教程的提示!

2 个答案:

答案 0 :(得分:26)

_children只是一个临时变量,用于在隐藏子项时保存它们。单击时,要么将children置为null并将子项存储在temp变量中,要么children已为空,请从temp变量中加载它们。

可以使用任何临时变量。 _children没有什么特别之处。它用于显示与children的明显关系。

答案 1 :(得分:0)

我只是通过下面的示例对此进行测试,发现如果我用其他任何内容替换单词children,则无法正确加载树。我相信孩子是必需的关键词。 https://bl.ocks.org/mbostock/4339083

我刚验证了这一点。要使用其他关键字定义子项,您必须使用tree.children()函数,如下所示:

tree.children(function(d){ return d.dependencies; });