我学习JavaScript和有点糊涂以下使用。这些问题可能比d3更具体。使用Javascript - 函数参数
http://mbostock.github.com/d3/ex/sunburst.html
var arc = d3.svg.arc()
.startAngle(function(d) { return d.x; })
.endAngle(function(d) { return d.x + d.dx; })
.innerRadius(function(d) { return Math.sqrt(d.y); })
.outerRadius(function(d) { return Math.sqrt(d.y + d.dy); });
所以,
- 由startAngle,endAngle等取一个函数作为参数。作为一个函数而不是一个数字的论据的基本原理是什么?
- 在全码,没有地方“d”是defined.I在看到几乎所有的D3项目。什么是“d”?它是如何设置的或它通过哪里?
谢谢。
我看到d以匿名方式传递。但是,来自其他编程语言背景,如果我使用d3库,我不应该传递d(无论它是什么类型)。因此,作为用户,我如何确保'startAngle'方法获得正确的d,其中有一个字段x? – bsr
@bsreekanth startAngle方法将调用您传递给它的函数。如果这是一个更传统的面向对象的接口,就好像startAngle函数接收到一个带有getAngle方法的对象,该方法接收单个参数(“d”)。您需要确保getAngle方法中的'd'参数与startAngle将调用它的任何内容匹配。 – hugomg