Я не понимаю область JavaScript, когда речь заходит об объектных переменных. У меня есть следующий класс:Доступ к свойствам конструктора в классе
class DataHandler {
constructor(boardIDA, boardIDB, accessToken, eventA, eventB) {
this.times = [];
this.eventA = eventA;
this.eventB = eventB;
this.apiURLA = "https://api.particle.io/v1/devices/" + boardIDA + "/events/" + eventA + "/?access_token=" +
accessToken;
this.apiURLB = "https://api.particle.io/v1/devices/" + boardIDB + "/events/" + eventB + "/?access_token=" + accessToken;
this.eventListenerA = new EventSource(this.apiURLA);
this.eventListenerB = new EventSource(this.apiURLB);
this.addListener(this.eventListenerA,
eventA);
this.addListener(this.eventListenerB, eventB);
}
addListener(eventSrc, eventName) {
eventSrc.addEventListener(eventName, function(info) {
alert(eventName);
var parsedData = JSON.parse(info.data);
this.times.push(parsedData);
});
}
}
Вопрос относится к this.times
. Я объявил это в конструкторе. Тем не менее, я не могу получить доступ к нему в addListener
. Я получаю сообщение об ошибке, что я пытаюсь позвонить push
по телефону undefined
. Что я делаю не так?
в слушателя событий, 'this', как правило, объект, который вызвал событие –