Soy nuevo en JavaScript / jQuery y he estado aprendiendo a crear funciones. Muchas funciones han aparecido con (e) entre paréntesis. Déjame mostrarte lo que quiero decir:
$(this).click(function(e) {
// does something
});
Siempre parece que la función ni siquiera usa el valor de (e), entonces, ¿por qué está ahí tan a menudo?
Intro
La pequeña ' (e) ' es en realidad parte del alcance más amplio de algo en Javascript llamado función de manejo de eventos. Cada función de manejo de eventos recibe un objeto de evento. Para el propósito de esta discusión, piense en un objeto como una "cosa" que contiene un montón de propiedades ( variables ) y métodos ( funciones ), al igual que los objetos en otros lenguajes. El identificador, la ' e ' dentro de la pequeña (e) cosa, es como una variable que te permite interactuar con el objeto (y yo uso el término variable MUY libremente).
Considere los siguientes ejemplos de jQuery:
Explicación
¿Qué esta pasando?
Cuando un usuario hace clic en el elemento con la identificación "#someLink" (probablemente una etiqueta de anclaje), llame a una función anónima, "función (e)" , y asigne el objeto resultante a un controlador, "e" . Ahora tome ese controlador y llame a uno de sus métodos, "e.preventDefault ()" , que debería evitar que el navegador realice la acción predeterminada para ese elemento.
Nota: El identificador puede llamarse prácticamente como quieras (es decir, ' función (billybob) '). La 'e' significa 'evento', que parece ser bastante estándar para este tipo de función.
Aunque 'e.preventDefault ()' es probablemente el uso más común del controlador de eventos, el objeto en sí contiene muchas propiedades y métodos a los que se puede acceder a través del controlador de eventos.
Se puede encontrar información realmente buena sobre este tema en el sitio de aprendizaje de jQuery, http://learn.jquery.com . Preste especial atención a las secciones Uso de jQuery Core y Eventos .
fuente
e
no tiene ningún significado especial. Es solo una convención para usare
como nombre de parámetro de función cuando el parámetro esevent
.Puede ser
también.
fuente
En ese ejemplo,
e
es solo un parámetro para esa función, pero es elevent
objeto que se pasa a través de él.fuente
El
e
argumento es la abreviatura del objeto de evento. Por ejemplo, es posible que desee crear un código para anclajes que cancele la acción predeterminada. Para hacer esto, escribirías algo como:Esto significa que cuando un
<a>
se hace clic etiqueta, se evita la acción predeterminada del evento de clic.Si bien puede verlo a menudo, no es algo que deba usar dentro de la función, aunque lo haya especificado como un argumento.
fuente
En jQuery,
e
abreviatura deevent
objeto de evento actual. Por lo general, se pasa como un parámetro para que se active la función de evento.Demostración: eventos de jQuery
En la demostración que usé
e
Yo también pude haber usado
event
¡La misma cosa!
Los programadores son perezosos, usamos muchas taquigrafía, en parte disminuye nuestro trabajo, en parte ayuda con la legibilidad. Comprender eso te ayudará a comprender la mentalidad de escribir código.
fuente
Hoy acabo de escribir una publicación sobre "¿Por qué usamos letras como" e "en e.preventDefault ()?" y creo que mi respuesta tendrá algún sentido ...
Primero, veamos la sintaxis de addEventListener
Normalmente será: target.addEventListener (type, listener [, useCapture]);
Y la definición de los parámetros de addEventlistener son:
(De MDN)
Pero creo que hay una cosa que se debe remarcar: cuando usas la función Javascript como oyente, el objeto que implementa la interfaz del evento (evento del objeto) se asignará automáticamente al "primer parámetro" de la función. Entonces, si usas function (e), el objeto se asignará a "e" porque "e" es el único parámetro de la función (¡definitivamente el primero!), entonces puedes usar e.preventDefault para evitar algo ....
probemos el ejemplo de la siguiente manera:
el resultado será: [object MouseEvent] 5 y evitará el evento de clic.
pero si elimina el signo de comentario como:
obtendrá: 8 y un error : "Uncaught TypeError: e.preventDefault no es una función en HTMLInputElement. (VM409: 69)".
Ciertamente, el evento de clic no se evitará esta vez, porque la "e" se definió nuevamente en la función.
Sin embargo, si cambia el código a:
todo volverá a funcionar correctamente ... obtendrá 8 y se evitará el evento de clic ...
Por lo tanto, "e" es solo un parámetro de su función y necesita una "e" en su función () para recibir el "objeto de evento" y luego realizar e.preventDefault (). Esta es también la razón por la que puede cambiar la "e" por cualquier palabra que no esté reservada por js.
fuente
Es una referencia al objeto de evento actual.
fuente
En referencia al código anterior
$(this)
es el elemento que como alguna variable.click
es el evento que debe realizarse.el parámetro
e
se pasa automáticamente de js a su función, que contiene el valor de$(this)
value y se puede usar más en su código para realizar alguna operación.fuente