Saltar al contenido

¿Qué es exactamente el parámetro e (evento) y por qué pasarlo a las funciones de JavaScript?

Nuestros mejores programadores agotaron sus provisiones de café, por su búsqueda todo el tiempo por la solución, hasta que Andrea halló el hallazgo en Bitbucket y hoy la compartimos aquí.

Solución:

los e es corto para event

La forma más sencilla de crear un evento es hacer clic en algún lugar de la página.

Al hacer clic, un click se activa el evento. Esta event es en realidad un objeto que contiene información sobre la acción que acaba de ocurrir. En el caso de este ejemplo, el evento tendría información como las coordenadas del clic (event.screenX por ejemplo), el elemento en el que hizo clic (event.target), y mucho más.

Ahora, los eventos suceden todo el tiempo, sin embargo, no estás interesado en todos los eventos que suceden. Cuando usted están Sin embargo, si está interesado en algún evento, es cuando agrega un detector de eventos al elemento que sabe que creará eventos.[1]. Por ejemplo, le interesa saber cuando el usuario hace clic en el botón ‘Suscribirse’ y tú quieres hacer algo cuando suceda este evento.

Para poder hacer algo con este evento, vinculas un controlador de eventos al botón que le interesa. La forma de vincular el controlador al elemento es haciendo element.addEventListener(eventName, handler).

eventName es un string y es el nombre del evento que te interesa, en este caso seria 'click' (Para el click evento).

El controlador es simplemente un función que hace algo (se ejecuta) cuando ocurre el evento. La función del controlador, por defecto, cuando se ejecuta se pasa el event objeto (que se creó cuando ocurrió el evento/acción que le interesa) como argumento.

Definición de la event como parámetro de su función de controlador es opcional pero, a veces (la mayoría de las veces), es útil que la función de controlador sepa sobre el evento que sucedió. Cuando usted hacer definirlo este es el e ves en las funciones como las que mencionas. Recuerda el event es solo un objeto javascript normal, con muchas propiedades.

Espero que haya ayudado.

Para obtener más información, lea Creación y activación de eventos.

En cuanto a su tercera pregunta, ahora debe saber que no puede hacer eso, porque e sólo existe cuando ocurre un evento. Podría tener la función de controlador, que tiene acceso a la e objeto cuando se ejecuta, para almacenarlo en alguna variable global y trabajar en eso.

[1] Eso no es exactamente correcto, pero es más fácil de entender. Lo más correcto es decir “agregue un detector de eventos al elemento que sabe que tendrá flujo de eventos a través de él”. Vea esto para más información

El parámetro e que usted está preguntando acerca de un Event objeto, y representa el evento que se está disparando y que provocó que se ejecutara su función. Realmente no tiene que ser epuede nombrarlo como desee, al igual que todos los demás parámetros de función.

  1. ¿De dónde viene esta e? Cuando miro todo el archivo javascript, e no parece existir en absoluto.

No podrás encontrar esto. e variable en su archivo javascript porque realmente no está allí en absoluto, sino que proviene del motor javascript que ejecuta su función de devolución de llamada.

Cuando proporciona una función de devolución de llamada para algún evento (por ejemplo, element.onkeypress = function(e) ... ), le está dando al motor de JavaScript una función para ejecutar/llamar cuando se activa ese evento, y cuando ejecuta/llama a su función de devolución de llamada, pasa a lo largo de un Event objeto que representa el evento que acaba de ocurrir. Javascript podría estar haciendo algo como esto para llamar a su función de devolución de llamada:

var e = new Event();
callbackFunction(e);

y ahí es donde el Event objeto e viene de.

  1. ¿Por qué pasar este parámetro e a las funciones? ¿Dejará de funcionar la función si no le paso e?

La función no dejará de funcionar si no tienes la e parámetro en él. Pero si necesita acceder a algunos detalles sobre el evento que provocó la ejecución de su función, necesitará el e parámetro para obtenerlos.

  1. Considere el bloque de código a continuación, hay una variable de evento (e) pasada a una función interna anónima. Digamos que quiero usar un objeto de evento fuera de la función anónima (tal vez en una línea arriba/abajo de la línea element.onkeypress), ¿cómo puedo hacer esto?

No creo que pueda hacer esto, incluso si lo almacena en una variable fuera del alcance de su función de devolución de llamada. Esto se debe a que su función no se ejecuta de inmediato cuando la declara, sino solo cuando se activa el evento (por ejemplo, un key se presiona, activando el evento ‘presionar tecla’).

var event;

element.onkeypress = function(e) 
    event = e;
    ...
;

console.log(event); // => undefined

La única forma en que esto podría funcionar es cuando el código que usa el event variable también se ejecuta más tarde, específicamente después de la función anónima dada a
onkeypress se ejecuta Así que el siguiente código podría funcionar:

var event;

element.onkeypress = function(e) 
    event = e;
    ...
;

setTimeout(function() 
    console.log(event); // => the event object, if the `keypress` event
                        //    fired before `setTimeout` calls this function
, 100000); // <= set to very large value so that it gets run way way later

Cuando se agrega un oyente usando agregarEventListenerel primer argumento pasado a la función es un objeto Evento, por lo que se asignará al mi parámetro (o cualquier nombre que se le dé al primer parámetro de la función).

Aquí puedes ver las comentarios y valoraciones de los lectores

Más adelante puedes encontrar las anotaciones de otros desarrolladores, tú asimismo eres capaz mostrar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *