Что такое синтаксис 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; });