@KuzmenkoArtem

Функция объекта не видит поля объекта при вызове из setInterval?

function constr(){
    this.x = 2;
    this.y = 10;
    this.getXplusY = function(){
        return this.x + this.y;
    }
 
   /* Если пользоваться по обычному то все норм*/
   var a = new constr();
   alert( a.getXplusY() ); // выведет 12

   /* Если вызывать через setInterval*/
   setInterval(a.getXplusY, 1000); // ничего не выведет, так как this не будет возвращать поля объекта 
}


Как можно решить данную проблему?
  • Вопрос задан
  • 144 просмотра
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Современное решение:
setInterval(a.getXplusY.bind(a), 1000);
Ответ написан
Комментировать
petermzg
@petermzg
Самый лучший программист
setInterval(function() { a.getXplusY() }, 1000);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы