Jak utworzyć obiekt „svg” bez dołączania go?

Rozważ następujący kod:

var svg = d3.select('#somediv').append("svg").attr("width", w).attr("height", h);

Chciałbym zmienić ten kod tak, aby brzmiał bardziej tak:

var svg = makesvg(w, h);
d3.select("#somediv").append(svg);

Zauważ, że w przeciwieństwie do sytuacji pokazanej w pierwszej wersji, w tej drugiej wersjiappend nie tworzy obiekt „svg”; to tylko do niego dołączad3.select("#somediv").

Problem polega na tym, jak zaimplementować tę funkcjęmakesvg. To z kolei ogranicza się do problemu: jak utworzyć instancję obiektu „svg” bez użyciaappend aby to zrobić, ponieważ można wtedy zrobić coś takiego:

function makesvg(width, height) {
  return _makesvg().attr("width", w).attr("height", h);
}

Moje pytanie sprowadza się do tego, co jest ogólnym odpowiednikiem hipotetycznego_makesvg() wspomniana fabryka?

questionAnswers(6)

yourAnswerToTheQuestion