Почему prevColor всегда undefined
?setInterval функция не может использовать внешнюю переменную
Этот код должен регистрировать новый цвет (actualColor
) и предыдущий цвет (prevColor
). Однако я не могу сохранить в prevColor
изнутри функции setInterval
. Где ошибка? Я не думаю, что это проблема контекста. Но я не уверен. There's нет this
внутри ...
Можете ли вы сказать мне, как я могу сохранить значение actualColor
в prevColor
внутри функции setInterval
?
var actualColor;
var prevColor;
// do some user action and change actualColor
setInterval(function() {
// only log the color if it differs from prevColor
if (actualColor != prevColor) {
console.log("actualColor: " + actualColor + ", prevColor: " + prevColor);
}
prevColor = actualColor;
}, 100);
консоли:
actualColor: acff06, prevColor: undefined
Возможный дубликат [Как вернуть ответ от асинхронного вызова?] (http://stackoverflow.com/questions/14220321/how-do-return-the -ответ от -асинхронного вызова) – Whymarrh
Где вы устанавливаете 'actualColor'? –
Вы не придаете переменным никакого значения. –