Avatar ·

Como funciona a palavra-chave this em JavaScript e quando usá-la?

Olá a todos! Sou novo em JavaScript e estou sempre confuso com a palavra-chave `this`. Li a documentação, mas parece muito complicada. Tenho este código: ```javascript const user = { name: 'Anna', greet: function() { console.log('Olá, ' + this.name); } }; const greetFunc = user.greet; user.greet(); // Exibe "Olá, Anna" — funciona! greetFunc(); // Exibe "Olá, undefined" — por quê? ``` Quando chamo `user.greet()`, tudo funciona. Mas se eu salvar o método em uma variável e chamá-la, `this.name` se torna `undefined`. Por que isso acontece? E também: ouvi dizer que `this` se comporta de forma diferente em arrow functions e em funções normais. Como posso entender para o que `this` vai se referir no meu código? Quando devo usar `this` e quando é melhor passar o objeto como parâmetro? Agradeceria uma explicação simples com exemplos. <<>>

O que é this e por que ele se comporta de forma imprevisível?

A palavra-chave this