由于某些原因,d3在.each()
迭代中使用this
来引用当前元素。
我有这段代码:
var me = this;
...
d3.selectAll(".region").each(function(d) {
d3.select(this).style("fill", me.compute_color(...));
})
在ES6中,我可以使用箭头符号来避免覆盖this
:
d3.selectAll(".region").each(d => {
d3.select(this).style("fill", this.compute_color(...));
})
然而,这段代码无法正常工作,因为d3选择了错误的元素。实际上,我已经失去了对该元素唯一的引用,因为this
没有被d3覆盖。
我该如何更改d3.select(this)
以使其正常工作?
this
,在创建时生效的this
已经固定,就像闭包一样... - dandavis