Javascript 回调参数之谜

Javascript 回调参数之谜,javascript,d3.js,Javascript,D3.js,我试图理解代码的D3部分来自: (html文件) 我想知道在以后被提取和简化的代码背后的奇迹是什么。我的问题是如何将参数传递给渲染函数。 据我所知,这个对应于图表对象本身,但参数方法从何而来?背后的规则/逻辑是什么?它似乎对应于图表(div)功能 var charts = [ barChart() .dimension(hour) .group(hours) ..., barChart() .dimension(delay)

我试图理解代码的D3部分来自: (html文件)

我想知道在以后被提取和简化的代码背后的奇迹是什么。我的问题是如何将参数传递给渲染函数。
据我所知,这个
对应于图表对象本身,但参数
方法
从何而来?背后的规则/逻辑是什么?它似乎对应于
图表(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");
}
选择。每个(功能)

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


感谢David的回答,我现在非常了解“this”参数,但我的重点仍然是理解方法参数,它似乎是一个条形图对象子函数(chart(div))…我不明白它是如何选择并发送到渲染函数的