Question

Est-il possible d'exécuter la méthode sur un objet existant sur timeout de la méthode window.setInterval. Je peux imiter la même en ayant une variable globale et appelant la méthode de cette variable globale dans setInterval, mais je voulais savoir si cela est possible en utilisant la méthode directement.

Cordialement, Keshav

Était-ce utile?

La solution

Oui, vous pouvez le faire. Vous avez besoin d'une fonction d'assistance pour faire une nouveau fonction qui a votre objet existant « lié »:

var someRandomObject = {
  someMethod: function() {
    // ... whatever
  },
  // ...
};

// this is a "toy" version of "bind"
function bind(object, method) {
  return function() {
    method.call(object);
  };
}

var interval = setInterval(bind(someRandomObject, someRandomObject.someMethod), 1000);

Maintenant, quand l'intervallomètre appelle votre méthode ( « someMethod »), le pointeur « ce » fera référence à l'objet.

Cette version de « lier » est simplifiée. Les bibliothèques comme Prototype, fonctionnel, jQuery, etc fournissent généralement des versions plus robustes. De plus, la fonction « bind » sera une partie native du jour Javascript -. Il est déjà dans certains navigateurs

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top