Просмотрев несколько разных вопросов по этой теме, я все еще не понимаю, как получить доступ к другой функции изнутри объекта.вызов другой функции в объекте
window.Think = {
initialize: function(){
this.currentNumber = 0;
},
updateNumber: function(){
this.currentNumber += 1;
},
listener: function(){
document.getElementById('foo').addEventListener('click', function(){
this.parent.updateNumber(); //this is where I want to call the prev function
}
}
Ошибка я получаю Cannot call method 'updateNumber' of undefined
Как я могу позвонить Think.updateNumber()
изнутри listener()
?
Нет, 'this' не ссылается на' window.Think' внутри обратного вызова прослушивателя событий. Кроме того, FYI, у вас есть синтаксическая ошибка (отсутствует '});' в конце метода 'listener', перед вторым до последнего"} ") – jraede
В его коде' this.parent.updateNumber (); 'находится в функции для события' click' на '# foo', поэтому' this' ссылается на этот элемент (если я не ошибаюсь), а не 'window.Think' – jraede
Это, люди, есть почему отступы важны. Из-за отсутствия надлежащего отступа, он был полностью упущен, была функция вложенного обратного вызова. –