回调参数之谜

时间:2016-04-13 09:17:49

标签: javascript d3.js

我正在尝试理解来自以下代码的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");
}

1 个答案:

答案 0 :(得分:0)

<强> selection.each(功能)

  

为当前选择中的每个元素调用指定的函数,使用当前DOM元素的this上下文传入当前数据d和索引i。

https://github.com/mbostock/d3/wiki/Selections#each

相关问题