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

Duvida contexto arrow function

No código abaixo estamos declarando um objeto e dentro deste objeto estamos definindo um "método" atravez de uma arrow function. Essa arrow function está declarada dentro da criação do objeto carro. Sendo assim, o contexto dela não deveria ser objeto carro ao invés do window?

<script>
    let carro = {
        velocidade: 100,
        acelera : () =>  {
            console.log(this);
            console.log(`Carro a ${this.velocidade} km por hora!`);
        }
    };
    carro.acelera();
</script>
2 respostas
solução!

Nesse caso não, porque o JavaScript estava esperando você usar a seguinte declaração:

let carro = {
        velocidade: 100,
        acelera() {
            console.log(this);
            console.log(`Carro a ${this.velocidade} km por hora!`);
        }
    };
    carro.acelera();

Menos verboso do que a arrow function. Quando você faz a declaração como fez, o objeto em si não é suficiente para servir de contexto, contexto continua sendo window, pois não há nenhum outro contexto que envolva o objeto (nos exemplos do curso, sempre havia uma classe). Pegadinhas do JavaScript :)

Bom dia. Entendi, fiz confusão do contexto da classe/objeto.

Obrigado.