Compreendendo como o D3.js vincula dados a nós

Estou lendo a documentação do D3.js. e estou achando difícil entenderaselection.data method da documentação.

Este é o código de exemplo fornecido na documentação:

var matrix = [
  [11975,  5871, 8916, 2868],
  [ 1951, 10048, 2060, 6171],
  [ 8010, 16145, 8090, 8045],
  [ 1013,   990,  940, 6907]
];

var tr = d3.select("body").append("table").selectAll("tr")
    .data(matrix)
  .enter().append("tr");

var td = tr.selectAll("td")
    .data(function(d) { return d; })
  .enter().append("td")
    .text(function(d) { return d; });

Entendo muito disso, mas o que está acontecendo com o.data(function(d) { return d; }) da seçãovar td declaração

Meu melhor palpite é o seguinte:

Ovar tr instrução @ vinculou uma matriz de quatro elementos a cada nó Ovar td usa então essa matriz de quatro elementos como dados, de alguma forma

Mas como.data(function(d) { return d; }) realmente obtém esses dados e o que eles retornam?

questionAnswers(6)

yourAnswerToTheQuestion