Article image
Edivaldo Junior
Edivaldo Junior27/02/2023 14:17
Compartilhe

Simplificando a sintaxe e aumentando a eficiência do código em JavaScript com Arrow Function

  • #JavaScript

Oque é uma Arrow Function?

As arrow functions são uma nova forma de escrever funções no JavaScript. Elas foram introduzidas na versão ES6 (também conhecida como ES2015) do ECMAScript, e são uma forma mais concisa e simples de escrever funções.

As arrow functions são especialmente úteis em situações em que precisamos passar funções como parâmetros para outras funções ou para métodos de objetos. Elas também têm um escopo léxico, o que significa que elas herdam o valor do this da função pai.

Sintaxe das Arrow Functions

A sintaxe das arrow functions é bem simples. Ela começa com um conjunto de parênteses que contém os parâmetros da função, seguido do símbolo => e do corpo da função. Aqui está um exemplo de uma função que recebe dois parâmetros e retorna a soma deles:

const soma = (a, b) => a + b;

No exemplo acima, os parâmetros a e b estão entre parênteses, e o corpo da função é a + b. O símbolo => separa os parâmetros do corpo da função.

Se a função tiver apenas um parâmetro, os parênteses podem ser omitidos:

const dobro = x => x * 2;

Diferenças em relação às funções regulares

As arrow functions têm algumas diferenças em relação às funções regulares do JavaScript. Aqui estão algumas delas:

1. Não há binding do this

Nas funções regulares, o valor do this é determinado pelo contexto em que a função é chamada. Nas arrow functions, o valor do this é herdado do escopo léxico da função pai. Isso significa que, se uma arrow function for declarada dentro de um objeto, ela terá acesso ao this do objeto pai.

const objeto = {
nome: 'João',
cumprimentar: function() {
  // Aqui, `this` se refere ao objeto
  const saudacao = () => {
    console.log(`Olá, ${this.nome}!`);
  };
  saudacao();
}
};

objeto.cumprimentar(); // Saída: Olá, João!

2. Não há objeto arguments

Nas funções regulares, o objeto arguments é uma array-like que contém os argumentos passados para a função. Nas arrow functions, não há um objeto arguments. Se você precisar acessar os argumentos de uma arrow function, você pode usar o operador spread (...).

function soma() {
// `arguments` é uma array-like
const args = Array.prototype.slice.call(arguments);
return args.reduce((a, b) => a + b);
}

const somaArrow = (...args) => args.reduce((a, b) => a + b);

console.log(soma(1, 2, 3)); // Saída: 6
console.log(somaArrow(1, 2, 3)); // Saída: 6

3. Não podem ser usadas como construtores

As arrow functions não podem ser usadas como construtores, o que significa que elas não podem ser chamadas com o operador new. Isso ocorre porque as arrow functions não têm um objeto prototype, que é necessário para criar objetos usando o operador new.

Onde usar arrow functions

As arrow functions podem ser usadas em qualquer lugar em que as funções regulares do JavaScript são usadas. No entanto, elas são especialmente úteis em situações em que precisamos passar funções como parâmetros para outras funções ou para métodos de objetos.

Por exemplo, aqui está um exemplo de como usar uma arrow function com o método map de um array:

const numeros = [1, 2, 3, 4];

const dobro = numeros.map(x => x * 2);

console.log(dobro); // Saída: [2, 4, 6, 8]

No exemplo acima, a arrow function x => x * 2 é passada como parâmetro para o método map. Isso faz com que o método map aplique a função a cada elemento do array numeros.

Outra situação em que as arrow functions são úteis é quando precisamos criar funções anônimas. As arrow functions permitem que criemos funções anônimas de forma mais simples e legível do que as funções regulares. Aqui está um exemplo:

setTimeout(() => console.log('Hello, world!'), 1000);

No exemplo acima, passamos uma arrow function como primeiro parâmetro para a função setTimeout. A arrow function é executada após um atraso de 1 segundo e imprime a mensagem Hello, world! no console.

Conclusão

As arrow functions são uma nova forma de escrever funções no JavaScript que são mais concisas e simples do que as funções regulares. Elas são especialmente úteis em situações em que precisamos passar funções como parâmetros para outras funções ou para métodos de objetos. Além disso, as arrow functions têm um escopo léxico e herdão o valor do this da função pai. No entanto, elas não podem ser usadas como construtores e não têm um objeto arguments. Com essas informações em mente, você deve estar pronto para começar a usar as arrow functions em seus projetos JavaScript.

Me siga no Linkedin:

https://www.linkedin.com/in/edivaldo-jr/

Referências

  1. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
  2. https://www.w3schools.com/js/js_arrow_function.asp
  3. https://javascript.info/arrow-functions-basics
Compartilhe
Comentários (0)