2014-01-06 9 views
11

In verschiedenen Beispielen zu Baumvisualisierungen wie diesem collapsible tree Beispiel wird die Syntax d._children = d.children; verwendet. Zum Beispiel in diesem Codeblock aus dem obigen Beispiel:Was bedeutet die Syntax d._children = d.children; steht für in d3.js?

// 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); 
} 

Was bedeutet die Syntax d._children genau bedeuten? Für mich war es nicht klar, wo dies definiert ist und ob es d3.js spezifische oder JavaScript-Syntax im Allgemeinen ist.

Alle Tipps zu Tree Traversal Tutorials, die solche Schemata beinhalten, sind mehr als willkommen!

Antwort

22

_children ist nur eine temporäre Variable, die die Kinder enthält, wenn sie ausgeblendet sind. Wenn Sie auf klicken, nehmen Sie entweder children auf null und speichern die untergeordneten Elemente in der temporären Variablen oder, falls children bereits null ist, laden Sie sie aus der temporären Variablen.

Jede Temperaturvariable hätte verwendet werden können. Es gibt nichts besonderes über _children. Es wird verwendet, um eine offensichtliche Beziehung zu children zu zeigen.

+0

ah ich sehe! Ich bin noch nicht sehr vertraut, wie neue Objekte/Variablen usw. in Javascript erstellt werden. Danke für die klare Antwort! – user3163770

0

Ich habe gerade dies über dieses Beispiel getestet und festgestellt, dass, wenn ich das Wort children durch etwas anderes ersetzt, der Baum nicht korrekt geladen wurde. Ich glaube, dass Kinder ein erforderliches Schlüsselwort sind. https://bl.ocks.org/mbostock/4339083

Ich habe dies gerade verifiziert. Um ein anderes Schlüsselwort zu verwenden Kinder zu definieren, müssen Sie die tree.children() Funktion wie folgt verwendet werden:

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

Verwandte Themen