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
Linda Hamiltonoriginal
2024-11-29 20:33:10723parcourir

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
        }
    }

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);

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!

Déclaration:
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