Глобальные функции в JavaScript
addEventListener и removeEventListener можно использовать как глобальные функции, если нужно обрабатывать события на window.
window в браузере — это globalThis, поэтому эти методы по умолчанию привязаны к window, хотя доступны глобально, как location или navigator.
То есть:
addEventListener('popstate', () => {})
— это то же самое, что:
window.addEventListener('popstate', () => {})
Но выглядит это всё-таки очень странно и делать так не стоит. Со стороны выглядит вот так:
onkeypress = () => console.log('please god no')
Что тоже супер странно. Но тоже работает. Без window.
Я наткнулся на такой код в исходниках wouter и потратил какое-то время, пытаясь понять, что вообще происходит.