Javascript d3.选择All.调用组件工厂功能
我希望对Javascript d3.选择All.调用组件工厂功能,javascript,dom,d3.js,functional-programming,Javascript,Dom,D3.js,Functional Programming,我希望对selectAllresultset中的每个元素调用一个新的函数 如果我执行d3.selectAll(…).call(factory(…),则对每个元素调用相同的函数。 factory(…)返回可能具有状态的组件 D3API中有什么东西可以做到这一点吗?还是我必须想出类似于d3.selectAll(…).each(function(){d3.select(this).call(factory(…)})?这行吗?使用.each(function(){factory(d3.select(th
selectAll
resultset中的每个元素调用一个新的函数
如果我执行d3.selectAll(…).call(factory(…)
,则对每个元素调用相同的函数。
factory(…)
返回可能具有状态的组件
D3API中有什么东西可以做到这一点吗?还是我必须想出类似于
d3.selectAll(…).each(function(){d3.select(this).call(factory(…)})
?这行吗?使用.each(function(){factory(d3.select(this),…);})
factory
返回一个接受选择的函数。所以.each(function(){factory(…)(d3.select(this))}
?哦,是的。.call()
是等效的,但我认为它不太清楚发生了什么。另外,我将重构工厂函数,以返回一个可以对多个元素的选择进行操作的函数。谢谢!组件确实接受多个元素的选择,但它保持状态(它不应该这样),因此本质上我得到了同一组件的多个实例