Quando não as usar e porquê

>

Funções em JavaScript são cidadãos de primeira classe ou objectos de primeira classe, isso significa que podemos fazer coisas como passá-las como parâmetro em uma função ou devolvê-las como resultado da execução de uma função.

Yoy pode ler mais sobre funções aqui:

I’ll ll explain what a anonymous function (AF) is with code:

>

Então um AF é uma função que não é salva em uma variável ou tem um nome declarado após o identificador “function”.

Quando não usá-los

O primeiro problema com AFs é que não tem nome, uma aclaração bem estúpida, mas para os desenvolvedores, o nome de uma variável, classe ou método é a principal documentação que temos sobre as responsabilidades e comportamentos dessa variável, classe ou método. Um mau nome pode nos deixar fazer muitos erros como esperar que uma função retorne algo quando seu código real imprime algo no console e retorna vazio, por exemplo, se tivéssemos nomeado nossa “funcionResultPrinter” com algo como “functionResultGetter”.

Então o primeiro momento em que não temos de usar funções anónimas é quando precisamos de um nome descritivo, e que em geral isso acontece sempre.

O segundo problema é que os AFs são declarados e guardados na memória em tempo de execução. Isso significa que toda vez que um AF for executado, haverá outro lugar na memória e isso pode aumentar a potência computacional necessária para essa parte do código.

Vamos fazer outro exemplo com o código:

Nesse exemplo temos um AF quase sem esforço computacional, mas podemos fazer um trabalho pesado em uma função para obter o que precisamos, e isso pode consumir muitos recursos do nosso servidor ou do browser do cliente.

A solução é nomear a função:

Finalmente vamos fazer algum benchmark:

Resumindo

Temos dois casos em que precisamos evitar o uso de funções anónimas:

  1. Quando a função precisa de um nome descritivo.
  2. Quando precisamos usar uma função que precisa de muita potência computacional.

Deixe uma resposta

O seu endereço de email não será publicado.