Arrow Functions são uma das novidades do ECMAScript 6 (ES6) e compartilham dos mesmos conceitos das Expressões Lambda, presentes em linguagens como C#, Python, Java, etc, amplamente utilizadas em Programação Funcional.
Uma das principais vantagens em relação as funções tradicionais é o fato das Arrow Functions terem uma sintaxe mais "enxuta", podendo-se omitir as palavras chave function e return, e também, o nome da função, Arrow Functions são sempre anônimas, e portanto, um bom uso para elas e passá-las como callback anônimo para outras funções.
Vejamos um exemplo:
a = [1,2,3,4,5,6];
var result = a.filter(function(num) { return num % 2 == 0; });
var result = a.filter((num) => num % 2 == 0);
Notem que no segundo caso o código ficou mais conciso.
Aquilo que vem antes da flecha (=>) são os parâmetros da função, e o que vêm depois são as declarações ou uma expressão. No caso de ser apenas uma expressão, como no exemplo acima, não é necessário utilizarmos chaves, porém, se utilizarmos as chaves devemos declarar o return explicitamente. Ex: (num) => { return num % 2 == 0; }.
Se temos apenas um parâmetro, o uso dos parenteses não é obrigatório.
Ex: num => num % 2 == 0;
No entanto, podemos utilizar mais de um parâmetro, neste caso os parenteses são obrigatórios:
Ex: (x, y) => x * y;
Se não houver nenhum parâmetro, obrigatoriamente devemos utilizar os parenteses:
Ex: () => 2 * 2;
As Arrow Functions podem ser atribuídas a variáveis.Ex:
var f = (x) => x * x;
f(2); //4
Para retornarmos um objeto devemos utilizar parenteses no corpo da função.
Ex: x => ({a: 5})
Espero que este post tenha sido útil.
Abraço.
Nenhum comentário:
Postar um comentário