Recherche…
Remarques
En Javascript, il n'y a pas de notion d'espaces de noms et ils sont très utiles pour organiser le code en différentes langues. Pour javascript, ils permettent de réduire le nombre de globales requis par nos programmes, tout en évitant de nommer des collisions ou de préfixer des noms de manière excessive. Au lieu de polluer la portée globale avec de nombreuses fonctions, objets et autres variables, vous pouvez créer un objet global (et idéalement un seul) pour votre application ou votre bibliothèque.
Espace de noms par affectation directe
//Before: antipattern 3 global variables
var setActivePage = function () {};
var getPage = function() {};
var redirectPage = function() {};
//After: just 1 global variable, no function collision and more meaningful function names
var NavigationNs = NavigationNs || {};
NavigationNs.active = function() {}
NavigationNs.pagination = function() {}
NavigationNs.redirection = function() {}
Espaces de noms imbriqués
Lorsque plusieurs modules sont impliqués, évitez de proliférer les noms globaux en créant un seul espace de noms global. À partir de là, tous les sous-modules peuvent être ajoutés à l'espace de noms global. (Une imbrication plus poussée ralentira les performances et ajoutera une complexité inutile.) Des noms plus longs peuvent être utilisés si les conflits de noms posent problème:
var NavigationNs = NavigationNs || {};
NavigationNs.active = {};
NavigationNs.pagination = {};
NavigationNs.redirection = {};
// The second level start here.
Navigational.pagination.jquery = function();
Navigational.pagination.angular = function();
Navigational.pagination.ember = function();