Я пытаюсь следующее:
var timeout = 300;
var colors = ['aqua', 'limegreen']
for (var i=0; i < 4; ++i) {
console.log(colors[i % colors.length]);
setTimeout(function() { changeColor(colors[i % colors.length]) }, i * timeout);
}
function changeColor(color) {
console.log(color);
}
Это не работает, потому что параметр для changeColor разрешается, когда он выполняется ... это означает, что цвет всегда будет одинаковым. В моем chrome также не работала передача параметров после тайм-аута:
var color = colors[i % colors.length];
setTimeout(function() { changeColor() }, i * timeout, color);
Ну, теперь у меня есть обходной путь с интервалом, который работает ... но так как я здесь, чтобы учиться ... как это сделать с таймаутом?