нужно запускать функцию через событие, а в этом случае this === e.target
Категорически нет. При использовании
addEventListener this ссылается на узел, в котором зарегистрирован обработчик.
Например, регистрируем так:
document.addEventListener('click', function (e) {
console.log(e.target); // Где кликнули
console.log(this); // Всегда document
}, false);
Как привязать объект активации (он же
this) к строго определённому объекту (и даже не HTML-элементу)? Вам стоит почитать про
bind (а также
call и
apply).
Итого примерно так:
document.addEventListener('click', deepThought.alertAnswer.bind(deepThought), false);