请考虑以下代码:
var svg = d3.select('#somediv').append("svg").attr("width", w).attr("height", h);
Run Code Online (Sandbox Code Playgroud)
我想重构这段代码,以便它更像这样:
var svg = makesvg(w, h);
d3.select("#somediv").append(svg);
Run Code Online (Sandbox Code Playgroud)
请注意,与第一个版本中显示的情况相反,在第二个版本append 中不会创建 "svg"对象; 它只会附加到它d3.select("#somediv").
问题是如何实现该功能makesvg.这反过来又减少了问题:如何在不使用的情况下实例化"svg"对象append,因为可以执行以下操作:
function makesvg(width, height) {
return _makesvg().attr("width", w).attr("height", h);
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题归结为_makesvg()上面提到的假设工厂的通用等价物是什么?