Comment fonctionne le mot-clé this en JavaScript et quand doit-on l'utiliser ?
Bonjour à tous ! Je suis débutant en JavaScript et je me confonds constamment avec le mot-clé `this`. J'ai lu la documentation, mais elle me semble trop compliquée. J'ai ce code :
```javascript
const user = {
name: 'Anna',
greet: function() {
console.log('Bonjour, ' + this.name);
}
};
const greetFunc = user.greet;
user.greet(); // Affiche "Bonjour, Anna" — ça marche !
greetFunc(); // Affiche "Bonjour, undefined" — pourquoi ?
```
Quand j'appelle `user.greet()`, tout fonctionne. Mais si je sauvegarde la méthode dans une variable et que je l'appelle, `this.name` devient `undefined`. Pourquoi cela se produit-il ? Et aussi : j'ai entendu dire que `this` se comporte différemment dans les fonctions fléchées et dans les fonctions normales. Comment puis-je comprendre à quoi `this` va faire référence dans mon code ? Quand faut-il utiliser `this`, et quand vaut-il mieux passer l'objet en paramètre ?