Глобальные функции в JavaScript

addEventListener и removeEventListener можно использовать как глобальные функции, если нужно обрабатывать события на window.

window в браузере — это globalThis, поэтому эти методы по умолчанию привязаны к window, хотя доступны глобально, как location или navigator.

То есть:

addEventListener('popstate', () => {})

— это то же самое, что:

window.addEventListener('popstate', () => {})

Но выглядит это всё-таки очень странно и делать так не стоит. Со стороны выглядит вот так:

onkeypress = () => console.log('please god no')

Что тоже супер странно. Но тоже работает. Без window.

Я наткнулся на такой код в исходниках wouter и потратил какое-то время, пытаясь понять, что вообще происходит.