Я хочу загрузить удаленное изображение, чтобы получить его высоту и ширину, но получить другой результат.
Код ниже дает мне правильную высоту и ширину изображения
img.onload= function() {
console.info('image;', this.width, this.height);
ctx.drawImage(img, 0, 0, width, height);
};
img.src = url;
но я получил значение undefined для высоты и ширины, если использую стрелочную функцию, как показано ниже:
img.onload=() => {
console.info('image;', this.width, this.height);
ctx.drawImage(img, 0, 0, width, height);
};
img.src = url;
Может ли кто-нибудь сказать мне, почему я не могу получить его в функции стрелки? А как мне получить размер в стрелочной функции?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Стрелочная функция не имеет собственной привязки this, поэтому она использует ту, которую закрывает.
Чтобы получить его, вместо этого определите параметр event. и используйте event.currentTarget.width.
img.onload = event => {
console.info('image;', event.currentTarget.width, event.currentTarget.height);
ctx.drawImage(img, 0, 0, width, height);
};