"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comprendre le mot-clé « this » en JavaScript

Comprendre le mot-clé « this » en JavaScript

Publié le 2024-08-07
Parcourir:429

Understanding the `this` Keyword in JavaScript

Le mot-clé this en JavaScript peut être l'un des concepts les plus déroutants pour les nouveaux développeurs. Sa valeur peut changer en fonction de l'endroit où il est utilisé, ce qui rend crucial la compréhension de son comportement dans différents contextes. Cet article démystifiera le mot-clé this en explorant son utilisation dans divers scénarios.

Qu'est-ce que c'est?

En JavaScript, cela fait référence au contexte dans lequel une fonction est exécutée. Il fournit un moyen d'accéder aux propriétés et aux méthodes d'un objet depuis l'objet lui-même.

Contexte mondial

Lorsqu'il est utilisé dans le contexte global (en dehors de toute fonction ou objet), cela fait référence à l'objet global. Dans un navigateur Web, l'objet global est window.

console.log(this); // In a browser, this will log the window object

Contexte de fonction

Lorsqu'il est utilisé dans une fonction, cela dépend de la manière dont la fonction est appelée.

Appel de fonction régulier

Dans un appel de fonction normal, ceci fait référence à l'objet global (ou non défini en mode strict).

function showThis() {
  console.log(this);
}

showThis(); // Logs window (or undefined in strict mode)

Appel de méthode

Lorsqu'une fonction est appelée comme méthode d'un objet, cela fait référence à l'objet lui-même.

const person = {
  name: 'Alice',
  greet: function() {
    console.log(this.name);
  }
};

person.greet(); // Logs "Alice"

Contexte du constructeur

Lorsqu'une fonction est utilisée comme constructeur avec le mot-clé new, cela fait référence à l'instance nouvellement créée.

function Person(name) {
  this.name = name;
}

const bob = new Person('Bob');
console.log(bob.name); // Logs "Bob"

Fonctions des flèches

Les fonctions fléchées ont un comportement différent. Ils n’ont pas leur propre contexte ; au lieu de cela, ils héritent de cela du contexte lexical environnant.

const obj = {
  name: 'Carol',
  regularFunction: function() {
    console.log(this.name);
  },
  arrowFunction: () => {
    console.log(this.name);
  }
};

obj.regularFunction(); // Logs "Carol"
obj.arrowFunction();   // Logs undefined (or the global object in non-strict mode)

Gestionnaires d'événements

Dans les gestionnaires d'événements, cela fait référence à l'élément qui a reçu l'événement.

document.getElementById('myButton').addEventListener('click', function() {
  console.log(this); // Logs the button element
});

Liaison explicite

JavaScript fournit des méthodes pour définir explicitement la valeur de this à l'aide de call, apply et bind.

appeler et postuler

Les méthodes call et apply vous permettent d'invoquer une fonction avec une valeur this spécifiée.

function introduce() {
  console.log(`Hello, my name is ${this.name}`);
}

const person = { name: 'Dave' };

introduce.call(person); // Logs "Hello, my name is Dave"
introduce.apply(person); // Logs "Hello, my name is Dave"

La différence entre call et apply réside dans la manière dont ils gèrent les arguments. call prend les arguments individuellement, tandis que apply les prend sous forme de tableau.

lier

La méthode bind crée une nouvelle fonction qui, lorsqu'elle est appelée, a sa valeur this définie sur la valeur fournie.

function introduce() {
  console.log(`Hello, my name is ${this.name}`);
}

const person = { name: 'Eve' };

const boundIntroduce = introduce.bind(person);
boundIntroduce(); // Logs "Hello, my name is Eve"

Conclusion

Comprendre le mot-clé this est essentiel pour maîtriser JavaScript. En reconnaissant comment cela se comporte dans différents contextes, vous pouvez écrire un code plus prévisible et plus maintenable. Que vous travailliez avec des méthodes, des constructeurs ou des fonctions fléchées, savoir comment cela fonctionne vous aidera à éviter les pièges courants et à exploiter efficacement sa puissance.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/mdhassanpatwary/understanding-the-this-keyword-in-javascript-12ea?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3