Pergunta

É possível executar o método em um objeto existente no tempo limite do método Window.setInterval. Posso imitar o mesmo ao ter alguma variável global e chamar o método dessa variável global no SetInterval, mas queria saber se isso é possível usando o método diretamente.

Atenciosamente, Keshav

Foi útil?

Solução

Sim, você pode fazer isso. Você precisa de uma função auxiliar para fazer um novo função que tem seu objeto existente "limitado":

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

Agora, quando o timer de intervalo chama seu método ("Somemethod"), o ponteiro "Este" fará referência ao objeto.

Essa versão de "Bind" é simplificada. Bibliotecas como protótipo, funcional, jQuery, etc. geralmente fornecem versões mais robustas. Além disso, a função "Bind" será uma parte nativa do JavaScript algum dia - já está em alguns navegadores.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top