我正在尝试了解this example的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; });
此代码的第二行实际上做了什么?它绑定的数据是什么?
答案 0 :(得分:6)
上面元素中绑定的数据由函数getLevels(d, t)
给出,其中d
是范围2 - 4和t
的数字是从当前时间派生的数字
这只返回一个数组数组。因为数组是already of type Object,所以在数组上调用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; });