Javascript библиотека D3 вызов функции


Я не в состоянии понять, как d3.вызов () работает и когда и где это использовать. здесь это учебник ссылка, которую я пытаюсь завершить.

может кто-нибудь, пожалуйста, объяснить конкретно, что эта часть делает

var xAxis = d3.svg.axis()
              .scale(xScale)
              .orient("bottom");

svg.append("g").call(xAxis);
1 57

1 ответ:

Я думаю, что трюк здесь заключается в том, чтобы понять, что xAxis-это функция, которая генерирует кучу элементов SVG. На самом деле это функция, возвращаемая d3.svg.axis(). Функции масштабирования и ориентации являются лишь частью синтаксиса цепочки (подробнее об этом здесь:http://alignedleft.com/tutorials/d3/chaining-methods/).

так svg.append("g") добавляет элемент группы SVG к svg и возвращает ссылку на себя в виде выборки (тот же синтаксис цепочки работает здесь). Когда вы используете call при выборе вы вызываете функцию с именем xAxis на элементах выделения g. В этом случае вы запускаете функцию axis,xAxis, на вновь созданной и присоединенной группе,g.

если это все равно не имеет смысла, синтаксис выше составляет:

xAxis(svg.append("g"));

или:

d3.svg.axis()
      .scale(xScale)
      .orient("bottom")(svg.append("g"));