我正在尝试理解来自以下代码的D3部分代码: https://github.com/square/crossfilter/tree/gh-pages(html文件)
我想知道以后提取和简化代码背后的奇迹是什么。我的问题是如何将参数传递给渲染函数
我的理解中this
对应于图表对象本身,但参数method
来自哪里?背后的规则/逻辑是什么?它似乎对应chart(div)
函数。
var charts = [
barChart()
.dimension(hour)
.group(hours)
...,
barChart()
.dimension(delay)
.group(delays)
...,
...
]
var chart = d3.selectAll(".chart").data(charts)
function render(method) {d3.select(this).call(method);}
function renderAll() {chart.each(render);}
function barChart() {
...
function chart(div) { ...}
chart.dimension = function(_) {...};
chart.round = function(_) {};
...
return d3.rebind(chart, brush, "on");
}
答案 0 :(得分:0)
<强> selection.each(功能)强>
为当前选择中的每个元素调用指定的函数,使用当前DOM元素的this上下文传入当前数据d和索引i。