Регистрация
15 Авг 2013
Сообщения
97
Репутация
0
Спасибо
0
Монет
0
В чем различие между этими записями? Это как-то влияет на функциональность?



f(){}

f() => {}

f = () => {}

f => {}



Что вообще за обозначение => ?
 
f(){} - обычная именованная функция с именем f, не имеющая параметров.f() => {} - ошибка синтаксиса.f = () => {} - стрелочная функция, не имеющая параметров, присваиваемая переменной f.f => {} - стрелочная функция, имеющая один параметр f.
Стрелочная функция - это краткий способ записи безымянных функций. Обычно используются для замыканий и callback.
Главное отличие стрелочной функции - у неё нет контекста (т.е. своего this).
 
почитай про стрелочные функции
 
Это синиаксис стрелочных функций, а второго варианта не существует. Обычная функция выглядит так: function funcName() {} Функция использующая function expression: const funcName = () => {} Анонимная функция обычная: function () {} Анонимная стрелочная функция: () => {} Вот пример, где мы передаем аргумент event в стрелочную функцию прослушивателя: element.addEventListener('click', (e) => {}); Можем сократить до: element.addEventListener('click', e => {});
 
// Обычная:
f(){}
// Такой не существует:
f() => {}
// Стрелочная с 1 аргументом (для 1 аргумента скобки не обязательны):
f => {}
// Стрелочная сохранённая в переменную. (твоя запись не правильная).
const f = () => {} Всего тут 2 вида а не 4.
Разницу между обычной и стрелочной можно загуглить.

Стрелочные функции сами по себе не имеют имени: (a, b, c) => a + b + c;
// аналогичен
function (a, b, c) { return a + b + c; } Стрелочная функция с одним выражением без скобок - возвращает выражение. Оператор return не обязателен. Скобки не обязательны.
 
Назад
Сверху