Я пишу код, используя оба из них, но я хочу прояснить, есть ли разница между этими двумя и если да, какой из них лучше всего использовать. (что лучше и почему?) или нет разницы между этими?
влияет ли использование стрелочных функций на производительность при использовании в цикле?
Когда мы передаем обработчик стрелочной функции дочерним компонентам (который создается в цикле), влияет ли это на производительность каким-либо образом?
Могу ли я по умолчанию придерживаться функции стрелки?
Функция стрелки:
renderPage = () => {
this.props.pdfData.getPage(this.props.pdfPageNumber).then(
this.handlePages();
);
}
Нормальная функция с привязкой:
constructor(){
super();
this.groupChange = this.groupChange.bind(this);
}
groupChange = (selectedOption: any) => {
this.setState({ selectedGroup: selectedOption });
if (selectedOption) {
console.info(`Selected: ${selectedOption.label}`);
}
}
Если вы хотите, чтобы у функции была своя собственная область действия, используйте ключевое слово function, и вы можете изменить область действия с помощью bind(). Но если вашей функции необходимо сохранить область видимости, из которой она была вызвана, вы используете стрелочную функцию. В любом случае вам не понадобится var self = this.



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


Проверьте это.