Javascript 如何在D3回调中访问当前选择?

Javascript 如何在D3回调中访问当前选择?,javascript,d3.js,data-visualization,Javascript,D3.js,Data Visualization,如何在D3回调中访问当前选择 group.selectAll('.text') .data(data) .enter() .append('text') .text((d) => d) .attr('class', 'tick') .attr('y', (d) => { // console.log(this) <-- this gives me window :( but I want the current sel

如何在D3回调中访问当前选择

group.selectAll('.text')
    .data(data)
    .enter()
    .append('text')
    .text((d) => d)
    .attr('class', 'tick')
    .attr('y', (d) => {
      // console.log(this) <-- this gives me window :( but I want the current selection or node: <text>
      return d
    })
group.selectAll(“.text”)
.数据(数据)
.输入()
.append('文本')
.text((d)=>d)
.attr('class','tick')
.attr('y',(d)=>{

//console.log(this)这里的问题是使用箭头函数访问
this

应该是:

.attr("y", function(d){
    console.log(this);
    return d;
})
请参阅此处有关此
的箭头函数的文档:

它说:

与函数表达式相比,箭头函数表达式的语法更短,并且在词汇上绑定this值(不绑定自己的this、arguments、super或new.target)

要在arrow函数中获取当前DOM元素this,请结合使用第二个和第三个参数:

.attr("y", (d, i, n) => {
    console.log(n[i]);
    return n[i];
})