Рассмотрим следующий код:
var svg = d3.select('#somediv').append("svg").attr("width", w).attr("height", h);
Я хотел бы реорганизовать этот код так, чтобы он читал больше:
var svg = makesvg(w, h);
d3.select("#somediv").append(svg);
Обратите внимание, что в отличие от ситуации, показанной в первой версии, в этой второй версии append
не создается объект "svg"; он добавляет его только к d3.select("#somediv")
.
Проблема заключается в том, как реализовать функцию makesvg
. Это, в свою очередь, сводится к проблеме: как создать экземпляр объекта "svg" без использования append
для этого, поскольку тогда можно было бы сделать что-то вроде:
function makesvg(width, height) {
return _makesvg().attr("width", w).attr("height", h);
}
Итак, мой вопрос сводится к тому, что является общим эквивалентом гипотетического _makesvg()
factory, упомянутого выше?