2
respostas

Passando variável por parâmetro, em que momento faz sentido?

Em que momento faz sentido passar uma variável por parâmetro para uma função? Por exemplo:

var form = document.querySelectorAll("#inputs-formulario");

UmaFuncaoQualquer();

function UmaFuncaoQualquer(){

}

Supondo que essa função fosse para pegar os .value de cada input, é necessário que eu passe a variável form por parâmetro ou não? Porque se eu chamar a variável form direto na função para capturar os valores também não funcionaria?

Faço essa pergunta pois notei em alguns momentos do curso de JS que, variáveis são passadas por parâmetro para funções, sedo que, se chamadas direto, não passando nada por parâmetro, funciona do mesmo jeito.

2 respostas

Oi Mario, ótima pergunta. É mais uma questão de reaproveitamento de código :). Se você recuperar o form dentro da função, você vai acoplar essa função a seu html, por conta do id e tudo mais... Se você simplesmente passar o form, a sua função nem vai saber de qual página você está falando... Mais para frente, você até criar um teste para a função com uma página diferente.

Olá Mário,

Além do que já foi dito pelo amigo Alberto, parâmetros são essenciais quando você trabalha com funções dinâmicas que podem gerar resultados diversos.

Vamos imaginar que você tem uma função que mostra ou esconde um loader (aqueles simbolos de carregando).

Caso você faça uma função assim

function showLoader() {
    return $('#loader').removeClass('hidden');
}

Você vai precisar de outra para esconder o loader, é claro

function hideLoader() {
    return $('#loader').addClass('hidden');
}

Se você trabalhar com parâmetros é possível unificar o código todo em um só

function loader( status ) {
    return $('#loader')[ status === true ? 'removeClass' : 'addClass' ]('hidden');
}

Então, cada caso é um caso, as vezes você quer separar as coisas, as vezes não. Parâmetros aumentam suas possibilidades de customização, pois a função pode variar de acordo com os parâmetros passados.

Já uma função sem parâmetros vai ter sempre aquele resultado que ela foi programada para fazer, o que as vezes é o que você quer mesmo.

Att.