0

オブジェクトリテラルがあるとしましょう:

var d = {
    x: +'35',
    y: '25'
};

そして無名関数:

function (d) {
    return d.y0 + d.y;
}

このコードを試してみると、d.y0 の代わりに「undefined」が表示されます。しかし、キーに 0 を追加して値にアクセスする d3.js コードはたくさんあります。この 0 は何をしますか?

4

2 に答える 2

2

リンクからjavascriptソースを見ると、y0は、データのコレクションの最初のポイントのy座標を参照するためにd3で使用される内部指定です。例:

function d3_svg_lineBundle(points, tension) {
  var n = points.length - 1;
  if (n) {
    var x0 = points[0][0],
        // Here
        y0 = points[0][1],

また

function d3_svg_lineBasis(points) {
  if (points.length < 3) return d3_svg_lineLinear(points);
  var i = 1,
      n = points.length,
      pi = points[0],
      x0 = pi[0],
      // Here
      y0 = pi[1],

プロパティ名に「0」を追加することについて、特別なことは何もありません。

コードサンプルは、次のjsファイルからのものです:http://mbostock.github.com/d3/d3.js?1.29.1

于 2012-06-29T07:11:34.197 に答える
2

JavaScript では、という名前のプロパティd.y0がない限り未定義です。私はd3に精通していませんが、純粋なJavaScriptを使用している場合、0を追加してプロパティを参照できる唯一の方法は、プロパティを参照しているオブジェクトにその名前のプロパティがある場合です。dy0

于 2012-06-28T22:47:03.310 に答える