Доброго времени суток. Столкнулся с такой проблемой... Я даже не знаю как ее описать и посему не могу загуглить. Почему-то this перестает определяться внутри функций в методах класса.
Пример на котором я тренируюсь:
class Interval {
constructor(x){
this.End=x;
this.myInterval=' ';
}
startInterval(){
console.log(this.End);
this.myInterval=setInterval(function(){
console.log(this.End);
if(this.End<10){
this.End++;
}
else{
this.stopInterval();
}
},1000);
}
stopInterval(){
clearInterval(this.myInterval);
}
}
let interval = new Interval(1);
interval.startInterval();
Когда запускается startInterval() this.End= равен переданной 1, но после начала "setInterval(function()" this.End уже undefined.
7я строка в консоль выводит 1.
9я выводит undefined;
А stopInterval() вообще убивает скрипт "this.stopInterval is not a function". Приходится его комменить.
Я так понимаю это связано с тем, что this переопределяется внутри функции. Как в js получить this.End и stopInterval() внутри setInterval(function(){ ?