Uncaught ReferenceError: xyz не определен

0

почему я получаю неопределенную ошибку при определении этой функции с одинарными кавычками?

пример:

rotator.doStuff =  function(num) {
        //do stuff
        rotator.timer = setTimeout('rotator.doStuff('+num+')',500);
}
  • 0
    что не определено? какая здесь точная ошибка?
  • 0
    Почему бы просто не setTimeout(function() { rotator.doStuff(num) },500); ?
Теги:

1 ответ

2
Лучший ответ

Предполагая, что это содержимое IIF.

При использовании строки rotator будет разрешен в глобальной области действия, и он не будет доступен там, таким образом, ошибка.

Вы должны попробовать это. Теперь rotator будет разрешен в лексическом масштабе, из которого он доступен.

rotator.timer = setTimeout(rotator.doStuff.bind(rotator, num), 500);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню