Los eventos no son exclusivos de JavaScript, la mayoría de lenguajes de programación poseen algún tipo de modelo de eventos. El funcionamiento de estos modelos puede ser diferente de lo que tenemos en JavaScript. De hecho, el modelo de eventos en JavaScript para páginas web es diferente del modelo de eventos de JavaScript cuando se usa en otros entornos.
Por ejemplo, Node.js es un entorno de ejecución (_runtime, en inglés_) bastante popular que le permite a los desarrolladores usar JavaScript para crear aplicaciones de redes y del lado del servidor. El modelo de eventos de Node.js se basa en detectores para detectar eventos y emisores para emitir eventos periodicamente, esto no suena muy alejado de lo que conocemos pero, el código sí es bastante diferente. En este modelo, se usan funciones como on() para registrar un detector de eventos, y once() para registrar un detector de eventos que elimina su registro después de haber sido ejecutado una vez.
La documentación del evento HTTP connect proporciona un buen ejemplo.
También puedes utilizar JavaScript para construir extensiones multi-navegador (mejoras en la funcionalidad de los navegadores) usando una tecnología llamada WebExtensions. El modelo de eventos es similar al modelo de los eventos de la web, salvo por pequeñas diferencias. Por ejemplo, las propiedades para detectar eventos utilizan el estilo camel-case (onMessage en vez de onmessage), y necesitan ser combinadas con la función addListener. Visita la página de runtime.onMessage (en-US)") para ver un ejemplo.
No necesitas entender nada sobre otros entornos de ejecución en este punto en tu camino de aprendizaje, simplemente queríamos aclarar que los eventos suelen ser diferentes en distintos entornos de programación.