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 é
O que é this e por que ele se comporta de forma imprevisível?
A palavra-chave this