Me preguntaba si alguien podría dar más detalles sobre qué es realmente el objeto de evento. He buscado en muchas fuentes que parecen decir que es un objeto que contiene información sobre el evento actual.
Mi pregunta es, ¿qué es realmente? ¿Es un único objeto global que contiene todos los tipos de eventos? ¿O hay un objeto de evento para cada evento único que ocurre? He visto en el código que puede escribir cosas como event.type, event.cancelBubble, etc. ¿Significa esto que puedo acceder al evento en cualquier momento y modificarlo desde cualquier parte del código? He visto en ejemplos de funciones que aceptan un evento como argumento, pero ¿por qué debería ser esto si es una variable global accesible en cualquier lugar?
Sé que esto parece un poco amplio, pero la mayoría de las fuentes parecen no profundizar demasiado en cómo funciona el objeto de evento en un nivel inferior. Entonces, si alguien pudiera aclararme esta confusión, se lo agradecería.
Te refieres a Window.event , cuyo uso ya no se recomienda. Es de una época en que JavaScript tenía objetivos más simples y un alcance más amplio.
El
eventde propiedad deWindowde solo lectura devuelve elEventque está siendo manejado actualmente por el código del sitio . Fuera del contexto de un controlador de eventos, el valor siempre esundefined.
Para el código nuevo, no confíe en que el evento 'global' esté disponible y, en su lugar, use el objeto Event pasado al controlador de eventos .
event es algo que significa que algo ha sucedido.
Si hace clic, escribe, cambia el tamaño, algo se carga, etc., todos estos son eventos. Cuando tienes un oyente en cualquiera de estos eventos, estás diciendo que quieres que suceda algo como reacción a este evento. La función de escucha tiene un event de argumento. Este event tendrá detalles sobre el evento que lo desencadenó.
Todos estos eventos se implementan desde la misma interfaz de Event . Entonces eso es con lo que podrías estar confundiéndolo. Un montón de tipos de eventos: MouseEvent, ClipboardEvent, etc. implementan esto. Y eventos como click , dbclick , keyup , etc. son eventos que usan estas interfaces. Así que es como una cadena que ves. Las propiedades que mencionó pueden pertenecer a cualquiera de las interfaces en el nivel superior y están disponibles en estos eventos específicos.
Tenga en cuenta que también puede crear eventos. Esto es útil cuando desea desencadenar eventos por su cuenta. Puede comenzar con new Event() .