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

Métodos diferentes com nomes iguais usados um dentro do outro.

No curso de ReactJS Parte 3 Aula 3, na classe TimelineApi existe um método chamado like, e aí o professor cria um método com o mesmo nome em outro arquivo e usá-o dentro do método like da classe TimelineApi. Eu queria saber como ele (O REACT ou o JAVASCRIPT) sabe que é pra executar o método like que foi importado, e não executar o próprio método like recursivamente. A conclusão que eu cheguei e não sei se é a correta e que isso é algum tipo de polimorfismo de sobrecarga, que ele entende que a assinatura do método importado recebe dois parâmetros e por isso ele não executa o método que já existe dentro classe que só recebe um parâmetro. Outra diferença é que o método da classe é estático e o outro não.

3 respostas

Fala aí Eric, tudo bem? Consegue me mandar os códigos exemplificando a dúvida? Ficaria mais fácil para tentar lhe ajudar, afinal, já fiz o curso faz um bom tempo.

Fico no aguardo.

Meu código está funcionando normal, era só uma dúvida específica da linguagem. E como eu já avancei no curso a parte do código que eu estava em dúvida foi modificado.

Mas era o seguinte:

Criamos uma classe com possuía um método "like". Esse método like recebia o Id da Foto.

Depois foi criado outro método like que iria agir com a action do dispatch para esse método em outro arquivo.

Basicamente a gente importou essa action no começo do documento com o nome de "like". Dentro de uma classe que também possuía um método com o mesmo nome, e além disso usamos o mesmo método dentro do outro, pois o método relativo a classe mandava um dispatch com a action chamada like que também é um método.

Exemplo:

function like(fotoId) { // <---- este método pertence a classe
    return dispatch => {
        // código...
        like(fotoId, liker) /// <---- este método foi importado do arquivo de actions
    }
}

A minha dúvida era como a linguagem ou o framework sabe que é pra executar esse LIKE que se comporta como uma ACTION, e não executa a próprio método recursivamente já que ambos possuem o mesmo nome.

solução!

Fala aí Eric, tudo bem? Isso é possível porque o JavaScript sabe que um like está dentro de uma classe o outro não.

Dessa maneira, quando você chama ele através de this.like está dizendo para chamar o like da sua classe e ele irá chamar o like.

Dessa maneira o contexto dos dois são diferentes.

Espero ter ajudado.

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