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

O resultado é diferente ao utilizar arrow function

Porque quando utilizo arrow function o resultado é diferente?

class Pessoa {

    constructor(nome) {
        this.nome = nome;
    }
}

function exibeNome() {
    alert(this.nome);
}

let pessoa = new Pessoa('Salsifufu');

exibeNome('Lampreia'); 

exibeNome = exibeNome.bind(pessoa);

exibeNome(); 

Sabemos que o retorno do alert será undefined na primeira e salsifufu na segunda, no entanto ao alterar a function para uma arrow function conforme abaixo, os dois resultados do alert serão undefined, estou faznendo a alteração de forma errada?

class Pessoa {
    constructor(nome){
        this.nome=nome
    }
}


let exibeNome = () => {
     alert(this.nome);
}

var pessoa = new Pessoa ('Salsifufu');

exibeNome('Lampreia');

exibeNome = exibeNome.bind(pessoa)

exibeNome();
1 resposta
solução!

Olá Pedro, isto acontece pois a arrow function uma das características dela é não carregar escopo. Portanto não vai conseguir criar um bind dela, só é possível com funções "normais".