我无法理解 d3.call() 的工作原理以及何时何地使用它。 Here是我要完成的教程链接。
谁能具体解释一下这件作品在做什么
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 并以选择的形式返回对自身的引用(此处使用相同的链语法)。当您在选择上使用 call
时,您是在选择 g
的元素上调用名为 xAxis
的函数。在这种情况下,您正在新创建和附加的组 g
上运行轴函数 xAxis
。
如果仍然没有意义,上面的语法等同于:
xAxis(svg.append("g"));
或:
d3.svg.axis()
.scale(xScale)
.orient("bottom")(svg.append("g"));
关于Javascript库d3调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12805309/