2

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」の値はどこから取得していますか?

4

1 に答える 1

2

無名関数は渡されますが、このコードでは呼び出されません。dパラメータは、最終的に関数を呼び出す人によってその関数に渡されます。この場合、d3 ライブラリがそうします。

質問のコードスニペットに似た、より簡単な例を次に示します。

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

そして、これはライブラリ内の類似の関数定義です:

function doSomething(someCallback) {
    var foo = 42;
    someCallback(foo);
}
于 2013-03-21T21:24:38.377 に答える