C'est ce qu'on appelle en javascript un "namespace" (terme qui a une toute autre valeur ailleurs qu'en js, mais bref).
Le truc avec javascript, c'est qu'il est extrêmement facile (et tout aussi dangereux) de créer des variables globales, qui vont littéralement "polluer" l'espace global, et qui peuvent générer de très, très gros bugs en fonction de l'ampleur de ton code, bugs assez difficiles à déceler si tu n'es pas trop au fait du scope assez particulier de javascript.
Pour éviter ça, donc, on recommande aux développeurs d'éviter au maximum les variables globales, notamment en utilisant les fonctions auto-appellées, qui sont des closures un peu spéciales, que tu appelles, par un abus de langage qui n'est pas vilain, des modules (pasqu'au fond... c'est quand même un peu ça).
Malgré tout, y a des moments ou t'as pas le choix, et où c'est bien d'avoir une ou deux variables globales, notamment pour la communication entre modules, et de la config venant du serveur au chargement, ou toute autre raison.
Dans ce cas, toujours afin d'éviter la pollution du scope global, on passe par un "namespace" : une seule variable globale, que tu déclares au tout début de ton script, et qui va devenir le "conteur" global de tes valeurs :
window.app = {};
// ...
window.app.foo = "bar";
Par convention, on appelle ce namespace "app", ou par le nom de ton site/application.
Voilà, voilà 