Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Funções no JS

Depois da aula 5 de JS me perdi um pouco na matéria e gostaria de entender alguns pontos, pra exemplificar melhor vou usar o código que fiz para resolver alguns exercícios:

function percorreArray(var1,metodo1){

    for (var i=0; i <= var1.length-1; i++){

      var paciente = var1[i];

      metodo1(paciente);

    }

};

Eu mudei o nome das variáveis pra tentar entender, mas não deu certo. Primeiro, essas variáveis são equivalentes as dos métodos em Java? e segundo, eu declaro u ma variável na "assinatura do método" e depois eu digo que essa variável precisa de uma outra variável? Como assim?!!

percorreArray(pacientesTds,function(pacienteAtual){

Na linha acima eu confesso, eu nem sei o que tá acontecendo no código, eu declarei a minha função e depois passei o nome do Array, mas depois essa função é que me quebram porque no método,ops, função percorreArray eu chamo um comportamento que recebe uma variável e cade essa função aqui? É essa que recebe o pacienteAtual? Eu não sei.

Enfim, peço ajuda dos senhores,

Att, Obrigado.

3 respostas
solução!

Bom, vamos com calma. Vou tentar explicar melhor o código pra ver se ajuda a resolver as outras dúvidas, também. Você entendeu a função percorreArray, certo? Ela recebe como parâmetros uma array (var1) a ser percorrida e um comportamento (metodo1 )a ser executado com cada elemento da array. Então, com um loop for, você executa o comportamento para cada elemento (paciente) da array.

Agora, você pode declarar o comportamento em uma outra função, que então recebe como parâmetro um paciente (dá uma olhada na opinião do instrutor sobre o exercício 12 da aula 5!). Assim, quando você chamar a função percorreArray, apenas coloque o nome da função que será o comportamento no parâmetro, não especifique o parâmetro que o comportamento precisará, já que este será definido ao longo da função principal. Eu sei que pode ficar um pouco confuso essa parte, hehe, mas deu para entender?

Sim, e eu não preciso declarar o tipo da variável, se é um objeto ou se é um número ou string porque o js é dinamicamente tipado, certo?

Certo! Na verdade, creio que JS se encaixe melhor no escopo das linguagens fracamente tipadas (como PHP), já que grande parte das dinamicamente tipadas também são fortemente tipadas (ou seja, os tipos das variáveis podem ser alterados durante a execução do programa, mas a linguagem não converte os tipos em operações ("10" * 3 resulta em um erro). No JS essa conversão de tipos durante operações funciona (de modo que "10" * 3 resulta em 30). Mas isso é mais uma questão de semântica e não sei se esses detalhes são realmente importantes.

Resumindo, sim, você entendeu, hehe!

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software