Como criar objeto "svg" sem anexá-lo?
Considere o seguinte código:
var svg = d3.select('#somediv').append("svg").attr("width", w).attr("height", h);
Eu gostaria de refatorar este código para que ele leia mais assim:
var svg = makesvg(w, h);
d3.select("#somediv").append(svg);
Note que, em contraste com a situação mostrada na primeira versão, nesta segunda versãoappend
não cria o objeto "svg"; só acrescenta parad3.select("#somediv")
.
O problema é como implementar a funçãomakesvg
. Isso, por sua vez, reduz o problema: como instanciar um objeto "svg" sem usarappend
para fazer isso, desde que se poderia fazer algo como:
function makesvg(width, height) {
return _makesvg().attr("width", w).attr("height", h);
}
Então, minha pergunta se resume ao que é o equivalente genérico do hipotético_makesvg()
fábrica mencionada acima?