Maison > interface Web > js tutoriel > Comprendre le mot-clé « this » en JavaScript

Comprendre le mot-clé « this » en JavaScript

王林
Libérer: 2024-07-16 16:35:40
original
769 Les gens l'ont consulté

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
Copier après la connexion

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 régulier, 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)
Copier après la connexion

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"
Copier après la connexion

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"
Copier après la connexion

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)
Copier après la connexion

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
});
Copier après la connexion

Liaison explicite

JavaScript fournit des méthodes pour définir explicitement la valeur de this en utilisant 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"
Copier après la connexion

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"
Copier après la connexion

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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal