Javascript库d3调用函数

我无法理解d3.call()如何工作以及何时何地使用它。 这里是我试图完成的教程链接。

有人可以请具体解释这件作品

var xAxis = d3.svg.axis() .scale(xScale) .orient("bottom"); svg.append("g").call(xAxis); 

我认为这里的技巧是理解xAxis是一个产生一堆SVG元素的函数。 实际上它是由d3.svg.axis()返回的函数。 scale和orient函数只是链接语法的一部分(更多内容请参阅http://alignedleft.com/tutorials/d3/chaining-methods/ )。

所以svg.append("g")将一个SVG组元素附加到svg,并以select的forms(在这里工作的链式语法)返回一个对自身的引用。 当您对select使用call ,您将在selectg的元素上调用名为xAxis的函数。 在这种情况下,您正在新创build和附加的组g上运行轴functionxAxis

如果仍然没有意义,上面的语法相当于:

 xAxis(svg.append("g")); 

要么:

 d3.svg.axis() .scale(xScale) .orient("bottom")(svg.append("g"));