1
resposta

Chamar a funcao exibir ja com o bind nao funciona ?

porque quando usamos a funcao exibir com o bind user somente ela nao tem efeito ? eu transformei exibir em let so pra ver se o problema era ser const, mas nao teve efeito algum.

const user = {
    nome: "Rafael",
    email: "j@j.com",
    nascimento: "1983/04/11",
    role: "admin",
    ativo: true,
    exibirInfos: function () {
        console.log(this.nome, this.email, this.nascimento, this.role)
    }
}

//user.exibirInfos()

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

const exibirNome = exibir.bind(user)
exibirNome(user)
console.log("")
exibir.bind(user)
1 resposta

Olá Rafael, tudo bem?

Pelo que entendi, você está tentando chamar a função exibir já com o bind para o objeto user, mas não está funcionando. O problema é que você está chamando a função de forma incorreta. Ao utilizar o bind, você está criando uma nova função que está vinculada ao objeto user, mas ainda precisa chamar essa nova função para que ela seja executada.

No seu código, você criou a nova função vinculada ao objeto user com o nome exibirNome, mas na hora de chamá-la, está passando o objeto user como parâmetro, o que não é necessário. Para chamar a função exibirNome, basta chamá-la diretamente, como no exemplo abaixo:

exibirNome();

Dessa forma, a função exibirNome será executada com o this vinculado ao objeto user.

Espero ter ajudado. Caso tenha mais dúvidas ou problemas com relação a este tópico, estarei à disposição para ajudá-lo.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.