箭头功能可以获取角度分量的“ this”对象。 简单函数可以获取函数本身的“ this”对象。
例如:
@ViewChild('svg') element: ElementRef;
svg:any;
this.svg = d3.select(element.nativeElement)
.append('svg')
.attr('width', 200)
.attr('height',200)
this.svg.on("click", function() {
// d3 'this' object
console.log(this)
})
this.svg.on("click", ()=> {
// component 'this' object
console.log(this)
})
但是我不能在同一函数中使用两个对象。
例如:
@ViewChild('svg1') element: ElementRef;
@ViewChild('svg2') element: ElementRef;
svg1:any;
svg2:any;
this.svg1 = d3.select(element.nativeElement)
.append('svg')
.attr('width', 200)
.attr('height',200)
this.svg1.on("mousemove", ()=>{
// Cannot use 'this' object for 'mousemove' event
console.log(d3.mouse(this));
// Can get 'this' object of the component
console.log(this.svg2);
})