Manipulador de eventos Javascript com parâmetros

Eu quero fazer um eventHandler que passe o evento e alguns parâmetros. O problema é que a função não recebe o elemento. Aqui está um exemplo:

<code>doClick = function(func){
    var elem = .. // the element where it is all about
    elem.onclick = function(e){
        func(e, elem);
    }
}
doClick(function(e, element){
    // do stuff with element and the event
});
</code>

O 'elem' deve ser definido fora da função anônima. Como posso obter o elemento passado para usar dentro da função anônima? Existe uma maneira de fazer isso?

E quanto a addEventListener? Eu não consigo passar o evento através de um addEventListener em tudo que eu faço?

Atualizar

Eu parecia consertar o problema com 'isso'

<code>doClick = function(func){
    var that = this;
    this.element.onclick = function(e){
        func(e, that);
    }
}
</code>

Onde isso contém this.element que eu possa acessar na função.

O addEventListener

Mas eu estou querendo saber sobre o addEventListener:

<code>function doClick(elem, func){
    element.addEventListener('click', func(event, elem), false);
}
</code>

questionAnswers(7)

yourAnswerToTheQuestion