5

我正在尝试理解此示例D3.js的代码,但对此代码感到困惑:

var circle = interpolation.selectAll("circle")
    .data(Object);
circle.enter().append("circle")
    .attr("r", 4)
    .attr("fill","yellow");
circle
    .attr("cx", function y(d) { console.log(d.attr("class")); return d.x; })
    .attr("cy", function(d) { return d.y; });

这段代码的第二行实际上是做什么的?它绑定到什么数据?

4

1 回答 1

8

绑定在上述元素中的数据由函数 给出getLevels(d, t),其中d是 2 - 4 范围内t的数字,是从当前时间派生的数字。

这只会返回一个数组数组。因为数组已经是 Object 类型,所以在 Array 上调用 Object() 会返回原始数组。因此,从我所见,作者只是简单地将 Object 用作​​一种标识函数,类似于:

var identity = function(d){
  return d;
}

var circle = interpolation.selectAll("circle")
    .data(identity);
circle.enter().append("circle")
    .attr("r", 4)
    .attr("fill","yellow");
circle
    .attr("cx", function y(d) { console.log(d.attr("class")); return d.x; })
    .attr("cy", function(d) { return d.y; });
于 2013-05-15T02:51:11.670 回答