Что такое синтаксис d._children = d.children; стоять в d3.js?

В различных примерах визуализации дерева, таких как этот сворачиваемый пример дерева, синтаксис 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.

Любые советы по учебным пособиям по дереву, которые включают такие схемы, более чем приветствуются!

Ответ 1

_children - это просто временная переменная, которая удерживает детей, когда они скрыты. Когда вы нажимаете кнопку, вы либо берете children на нуль, либо сохраняете их в переменной temp, или, если у children уже нет значения, загружайте их из переменной temp.

Любая временная переменная могла бы использоваться. Нет ничего особенного в _children. Он используется, чтобы показать очевидную связь с children.

Ответ 2

Я просто тестировал это в этом примере ниже и обнаружил, что если я заменил слово " children чем-нибудь другим, дерево не смогло правильно загрузить. Я считаю, что дети являются обязательным ключевым словом. https://bl.ocks.org/mbostock/4339083

Я просто проверил это. Чтобы использовать другое ключевое слово для определения детей, вы должны использовать tree.children() следующим образом:

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