Я пытаюсь понять source code for d3 selectAll , и я не понимаю строку, следующую за моим комментарием ниже.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);
};
}
Ahh ... Конечно. Я не мог видеть. Таким образом, эти три аргумента передаются в селекторную функцию как d, i, j спасибо за объяснение @LarsKotthoff –