this = un paramétre !

This doit être vu comme un paramétre.

This permet d'économiser du code en mémoire.

Exemple de code

  1. let user = { name: "John", f: say };
  2. let admin = { name: "Admin", f: say };

  3. function say(what="Hi") {
  4.   console.log(`${what} ${this.name}`);
  5. }

  6. // these calls have different this
  7. // "this" inside the function is the object "before the dot"
  8. user.f("Hello"); // John  (this == user)
  9. admin.f("Please"); // Admin  (this == admin)

  10. admin['f']();
Pour connaitre la valeur du paramétre this. Il faut regarder l'objet qui appelle la fonction !



Erreur classique.

Il est important de comprendre que this n'est pas lié à user lors de la définition




Comme un paramétre classique, c'est lors de l'appel de la méthode que l'on connait la valeur de this.


Autre exemple :