Javascript d3选择所有源代码

Javascript d3选择所有源代码,javascript,d3.js,Javascript,D3.js,我在试着理解这个问题 我不明白下面我的评论的意思 我可以看到选择器字符串上有一个闭包,调用d3_selectAll时,this被设置为node,但是调用中的其他三个参数是如何使用的 import "../core/array"; import "selection"; d3_selectionPrototype.selectAll = function(selector) { var subgroups = [], subgroup, node; select

我在试着理解这个问题 我不明白下面我的评论的意思

我可以看到选择器字符串上有一个闭包,调用d3_selectAll时,
this
被设置为node,但是
调用中的其他三个参数是如何使用的

import "../core/array";
import "selection";

d3_selectionPrototype.selectAll = function(selector) {
  var subgroups = [],
      subgroup,
      node;

  selector = d3_selection_selectorAll(selector);




for (var j = -1, m = this.length; ++j < m;) {
    for (var group = this[j], i = -1, n = group.length; ++i < n;) {
      if (node = group[i]) {
        //***where are node.__data__, i, j consumed?***
        subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j)));
        subgroup.parentNode = node;
      }
    }
  }



return d3_selection(subgroups);
};

function d3_selection_selectorAll(selector) {
  return typeof selector === "function" ? selector : function() {
    return d3_selectAll(selector, this);
  };
}
导入“./core/array”;
导入“选择”;
d3_selectionPrototype.selectAll=功能(选择器){
var子组=[],
小组,
节点;
选择器=d3_selection_selector或all(选择器);
对于(var j=-1,m=this.length;++j
这仅与子选择相关,并在以下章节中解释:

选择器也可以指定为返回元素数组(或节点列表)的函数,如果没有匹配的元素,则返回空数组。在这种情况下,以和其他操作符函数相同的方式调用指定的选择器,将当前数据d和索引i传递给它,并将此上下文作为当前DOM元素


特别是,如果选择器不是一个函数,则这些参数将被忽略(最后的函数声明没有参数)。

Ahh。。。当然我看不见。因此,这三个参数作为d,i,j传递给选择器函数,感谢您对@larskothoff的解释