нет, так не будет работать — у тебя на каждый вызов функции будет создаваться новый объект, и они не смогут подписываться на одно и то же событие