Обработчики событий изменят контекст этого, привязав его к кнопке с прослушивателем событий.вам нужно повторно привязать это к функции обработки:
document.getElementById('button').addEventListener('click', wordCounter.fireCounter.bind(wordCounter));
Я бы предупредил вас, что это не оптимальное решение, так как вы теряете доступ к элементу, по которому щелкнули (кроме e.target
)
Вы можете заключить вызов функции в обработчик, чтобы сохранить всю информацию, например так:
(() => {
const wordCounter = {
text: '',
getText: function() {
console.log(document.getElementById('textarea').value); // <--
},
fireCounter: function() {
console.log(this);
this.getText();
}
}
document.getElementById('button').addEventListener('click', () => {
wordCounter.fireCounter();
});
})();
Также используйте textarea.value
, а не innerHTML