Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Qual a necessidade?

Qual a necessidade de fazer essas voltas e repetições de código pra fazer a mesma coisa que o "//user.exibirInfos()" faz? Isso será explicado ao decorrer do curso? Não entendi muito bem...

const exibir = function() {
    console.log(this.nome, this.email);
}

const exibirNome = exibir.bind(user);
exibirNome();
1 resposta
solução!

Oi Lucas! Tudo bem?

A razão pela qual estamos fazendo essas "voltas" com o código é para entender como o this funciona e como podemos manipular o contexto de uma função.

Quando você simplesmente chama user.exibirInfos(), o JavaScript sabe que o this dentro da função exibirInfos deve referir-se ao objeto user. No entanto, quando você atribui a função a uma variável, como em const exibir = user.exibirInfos, essa referência ao objeto user é perdida. Isso acontece porque o this depende de como a função é chamada, não de onde ela foi definida.

O método bind é usado para "amarrar" a função a um contexto específico, no caso, ao objeto user. Isso é útil em situações onde você quer garantir que a função sempre tenha acesso ao contexto correto, independentemente de como ela é chamada.

Por exemplo, imagine que você tem um botão em uma página web que, ao ser clicado, deve exibir informações do usuário. Se você simplesmente passar a função exibirInfos para um manipulador de eventos, ela pode perder o contexto do user. Usando bind, você garante que a função sempre será chamada com o contexto correto:

button.addEventListener('click', user.exibirInfos.bind(user));

Espero que isso ajude a esclarecer a importância de entender e manipular o contexto com this e bind. E sim, ao longo do curso, você verá mais exemplos e exercícios que ajudarão a solidificar esse conceito.

No mais, bons estudos!