Szukaj…


Uwagi

W Javascript nie ma pojęcia o przestrzeni nazw i są one bardzo przydatne do organizowania kodu w różnych językach. W przypadku javascript pomagają zmniejszyć liczbę globałów wymaganych przez nasze programy, a jednocześnie pomagają uniknąć kolizji nazewnictwa lub nadmiernego prefiksowania nazw. Zamiast zanieczyszczać globalny zasięg wieloma funkcjami, obiektami i innymi zmiennymi, możesz utworzyć jeden (a najlepiej tylko jeden) obiekt globalny dla swojej aplikacji lub biblioteki.

Przestrzeń nazw przez bezpośrednie przypisanie

 //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() {}

Zagnieżdżone przestrzenie nazw

Gdy w grę wchodzi wiele modułów, unikaj rozprzestrzeniania globalnych nazw, tworząc jedną globalną przestrzeń nazw. Stamtąd można dodawać podmoduły do globalnej przestrzeni nazw. (Dalsze zagnieżdżanie spowolni działanie i zwiększy niepotrzebną złożoność). Dłuższych nazw można użyć, jeśli problemem są konflikty nazw:

 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();


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow