Самое основное преимущество стрелочных функций над обычными - это область видимости окружающего контейнера.
Для примера набросал самый простой скрипт:
13.08.2020 / 01:20
Для примера набросал самый простой скрипт:
var Obj = {
data: 'Тест 1',
getOne: function() {
return () => {
alert(this.data+', '+[...arguments].join(', '));
}
},
getTwo: function() {
return function() {
alert(this.data+', '+[...arguments].join(', '));
}
}
};
/** вернет "Тест 1, Тест 2, Тест 3, Тест 4",
* т.к. у стрелочной ф-ии есть полный доступ к внешнему окружению **/
Obj.getOne('Тест 2', 'Тест 3', 'Тест 4')();
/** вернет "undefined" для this.data,
* а на конструкцию [...arguments] вообще ругнется,
* т.к. в ним нет никакого доступа **/
Obj.getTwo('Тест 2',...