execute um método em um objeto existente com janela.setInterval
-
27-09-2019 - |
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
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.