Você pode passar argumentos para setTimeout e setInterval

Digamos que você queira passar 2 variáveis ​​para a função que você chama em setTimeout.

Abordagem 1

var callback = function(a, b){
console
.log(a + b); // 'foobar'
};

window
.setTimeout(function(){
callback
('foo', 'bar');
}, 1000);

Abordagem 2

window.setTimeout(callback, 1000, 'foo', 'bar');

(Abordagem 2: Suporte para IE> 9)