Maison > interface Web > js tutoriel > le corps du texte

Pourquoi « Ceci » se comporte-t-il de manière incohérente en Javascript ?

Patricia Arquette
Libérer: 2024-10-22 11:19:03
original
611 Les gens l'ont consulté

Why Does

Incohérences avec l'opérateur "this" en Javascript

L'opérateur "this" en Javascript a été une source de confusion pour de nombreux développeurs en raison à son comportement variable selon le contexte. Cet article vise à clarifier le fonctionnement de « ceci » et à fournir les meilleures pratiques pour atténuer les problèmes potentiels.

Comprendre les modèles d'appel

La clé pour comprendre « ceci » est de comprendre le différentes façons dont les fonctions peuvent être invoquées en Javascript :

  • Méthode : Lorsqu'une fonction est appelée comme méthode d'un objet, "this" fait référence à cet objet.
  • Fonction : Lorsqu'une fonction est invoquée en tant qu'entité autonome, "this" fait référence à l'objet global (généralement la fenêtre).
  • Constructeur : Lorsqu'un La fonction est invoquée avec le nouveau mot-clé, "this" fait référence à l'objet nouvellement créé.
  • Apply : La méthode apply() vous permet de spécifier la valeur de "this" et de la transmettre un tableau d'arguments.

Fonctions de rappel et "this"

Le comportement incohérent survient souvent lors de l'utilisation d'une méthode comme fonction de rappel. Puisque les rappels sont invoqués en tant que fonctions, "this" sera par défaut l'objet global. Cela peut conduire à un comportement inattendu, en particulier lors de l'accès aux propriétés de l'objet d'origine.

Bonnes pratiques pour garantir la cohérence

Pour garantir la cohérence de « ce » comportement, tenez compte des Bonnes pratiques suivantes :

  • Utilisez la variable "that" : Attribuez une variable à "this" dans la méthode, qui persistera grâce aux invocations de rappel.
  • Utiliser les fonctions fléchées : Les fonctions fléchées ne lient pas leur propre valeur "this", héritant de leur portée englobante. Cela peut fournir une référence cohérente.
  • Lier "this": La méthode bind() vous permet de créer une nouvelle fonction avec une valeur "this" spécifiée, garantissant la cohérence entre les invocations de rappel.

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:php
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!