我學習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