函数如何在D3和JS调用中传递参数

时间:2013-03-21 21:21:41

标签: javascript d3.js

尝试学习D3.js和JavaScript等东西:) 所以这是我在书中看到的代码:

<script>
    function draw(data){
      d3.select("body")
              .append("div")
              .attr("class", "chart")
              .selectAll(".bar")
              .data(data.cash)
              .enter()
              .append("div")
              .attr("class", "bar")
              .style("width", function(d){return d.count/100 +"px"})
              .style("outline", "1px solid blue")
              .text(function(d){return Math.round(d.count)});
    }
</script>

我习惯于强类型的.NET或Java等语言,所以这对我来说很奇怪, 在说

的行
.style("width", function(d){return d.count/100 +"px"})

从哪里获取“d”的值?

1 个答案:

答案 0 :(得分:2)

匿名函数在这段代码中传递但未调用d参数由最终调用该函数的人传递给该函数 - 在这种情况下,d3库将会。

这是一个更简单的示例,类似于您问题中的代码段:

doSomething(function (someParameter) {
    alert(someParameter);
});

这是库内的类似函数定义:

function doSomething(someCallback) {
    var foo = 42;
    someCallback(foo);
}