es evento una variable global que es accesible en todas partes dentro de la cadena de devolución de llamada?

Solo estaba jugando con oyentes de eventos con DOM y javascript y noté esto:

function chained(msg) {
    console.log(msg, event);
}

function onClick() {
    chained('the body was clicked');
}

document.body.addEventListener('click', onClick);

Ahora lo curioso ... esto dará como resultado:

"se hizo clic en el cuerpo, (MouseEvent)"

Entonces pregunto, ¿por qué? ¿Cómo pasa el objeto de evento sin enviarlo a lachained ¿llamada

function chained(msg) {
    console.log(msg, namedEventObj); //throw error namedEventObj is not defined
}

function onClick(namedEventObj) {
    console.log(event); //outputs (MouseEvent);
    console.log(nameEventObj); //outputs (MouseEvent);
    chained('the body was clicked');
}

document.body.addEventListener('click', onClick);

Incluso si declaro que el evento obj se pasará aonClick funcionan comonamedEventObj estará disponible solo paraonClick pero no achainedunción @ ... Tengo esto y esto tiene sentido para mí ... pero definitivamente no es elevent variable para estar disponible para lachained función.

¿Alguien sabe por qué se comporta así?

Lo único en lo que puedo pensar es que ese evento es de hechowindow.event y se pone a disposición cuando se envían algunos eventos y Evento ... pero eso significaría que cualquier elemento podría obtener esa información de evento si se llama al mismo tiempo que el evento cuando se dispara?

Estoy usando Chrome 11.0.x

Respuestas a la pregunta(1)

Su respuesta a la pregunta