JavaScript

Por que colocar função em variável em JavaScript?

16 de julho de 2020

Por que colocar função em variável em JavaScript?

Neste artigo você aprenderá por que colocar função em variável pode ser uma boa estratégia quando você programa em JavaScript.

por que adicionar funcoes a variaveis capa

Fala programador(a), beleza? Bora aprender a vantagem de adicionar funções a variáveis em JavaScript!

Primeiro é necessário entender o conceito de hoisting no JavaScript

Basicamente devido a este recurso as variáveis e funções são identificadas primeiramente no código, porém não são inicializadas

Veja:

console.log(a);

var a = 10;

A saída do console.log vai dar undefined, e perceba que a variável a nem tinha sido declarada ainda, porém pelo hoisting ela já foi identifica e o software vai declará-la posteriormente

Então considerando o hoisting isso é possível:

x();

function x() {
 console.log('teste');
}

A função será içada para o topo e conseguimos executá-la antes da sua criação de fato no código

Causando assim um problema de manutenção e evolução no código

Atribuindo a função para uma variável, não poderemos utilizá-la até o ponto em que ela foi declarada for percorrido

Veja:

x();

var x = function() {
 console.log('teste');
}

Aqui a função não será executada, tendo assim que respeitar o momento em que ela é declarada no código, precisaremos mudar a invocação de x para uma linha embaixo da função

Isso deixará o código menos confuso para quem for posteriormente analisá-lo e depurá-lo

Este é o maior diferencial ao utilizar funções em variáveis: a visibilidade de escopo

Conclusão

Neste artigo vimos por que colocar função em variável em JavaScript

Adicionamos uma validação a mais no código, pois ele terá que respeitar a execução para conseguir executar uma função

Assim deixando o código mais padronizado e de fácil manutenção

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

Subscribe
Notify of
guest
2 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Filipe

Muito obrigado, eu tinha essa duvida

Battisti

valeu Filipe!

2
0
Would love your thoughts, please comment.x