Это написано на MDN чтоEvent Listener с анонимной функцией
Если вы хотите передать параметры функции прослушивания, вы можете использовать анонимную функцию.
После нескольких экспериментов я понял, когда я пытаюсь зарегистрировать приемник событий с функцией одного параметра, как это (без анонимной функции)
target.addEventListener(type, doSomething(parameter));
функция слушателя выполняет даже тогда, когда событие Бесполезного не случается, но когда я завершаю его анонимной функцией
target.addEventListener(type, function() {doSomething(parameter);});
все идет так, как ожидалось.
Почему такое поведение имеет место? Наверное, это связано с закрытием.
В первом случае вы выполняете функцию и передаете результат в качестве обработчика события. Во втором случае анонимная функция не выполняется, а просто передается как ссылка. – Sirko