[英]d3 selectAll Source code
我试图理解d3 selectAll的源代码 ,但我不理解下面我的评论后面的内容。
我可以看到有在选择字符串关闭,并且this
设置时d3_selectAll被调用到节点,但如何是其他三个参数在call
消耗?
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);
};
}
这仅与子选择有关,并在文档中进行了解释:
选择器也可以指定为返回元素数组(或NodeList)的函数,如果没有匹配的元素,则返回空数组。 在这种情况下,以与其他运算符函数相同的方式调用指定的选择器,将当前的数据d和索引i传递给此选择器,并将此上下文作为当前的DOM元素。
特别是,如果选择器不是函数,则将忽略这些参数(在函数声明末尾不带参数)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.