Maison > interface Web > js tutoriel > Comment puis-je accéder à l'instance d'objet correcte dans un rappel « setInterval » en JavaScript ?

Comment puis-je accéder à l'instance d'objet correcte dans un rappel « setInterval » en JavaScript ?

Linda Hamilton
Libérer: 2024-11-29 20:33:10
original
710 Les gens l'ont consulté

How Can I Access the Correct Object Instance Within a `setInterval` Callback in JavaScript?

Accéder à cela depuis setInterval en JavaScript

Lorsque vous travaillez avec setInterval() en JavaScript, il peut devenir difficile d'accéder à l'instance correcte de l'objet à partir de la fonction de rappel. Ce problème survient lorsque la fonction de rappel est une méthode de l'objet et que le mot clé this ne fait pas référence à l'instance souhaitée en raison de la façon dont JavaScript gère la gestion des événements.

Pour surmonter cette limitation, explorons une solution qui utilise la méthode bind() pour lier la fonction de rappel à l'instance d'objet correcte.

Considérez l'exemple suivant :

prefs: null,
startup : function()
    {
        // init prefs
        ...
        this.retrieve_rate();
        this.intervalID = setInterval(this.retrieve_rate, this.INTERVAL);
    },

retrieve_rate : function()
    {
        var ajax = null;
        ajax = new XMLHttpRequest();
        ajax.open('GET', 'http://xyz.example', true);
        ajax.onload = function()
        {
            // access prefs here
        }
    }
Copier après la connexion

Dans cet exemple, le but est d'accéder à la propriété prefs de l'objet depuis le gestionnaire onload de la requête AJAX. Cependant, le comportement par défaut de JavaScript fait référence à l'objet window dans la fonction onload.

Pour résoudre ce problème, nous pouvons utiliser la méthode bind() pour lier la fonction retrieve_rate à l'instance d'objet actuelle. Cela garantit que lorsque la fonction onload est invoquée, le mot-clé this fera référence à l'objet correct.

this.intervalID = setInterval(this.retrieve_rate.bind(this), this.INTERVAL);
Copier après la connexion

En modifiant le code de cette manière, nous garantissons que this fait référence à l'instance d'objet correcte lors du chargement. La fonction est appelée, nous permettant d'accéder à la propriété prefs comme nous le souhaitons.

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.cn
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