Поиск…


замечания

В Javascript нет понятий пространств имен, и они очень полезны для организации кода на разных языках. Для javascript они помогают уменьшить количество глобальных запросов, требуемых нашими программами, и в то же время помогают избежать коллизий имен или чрезмерного префикса имени. Вместо того, чтобы загрязнять глобальную область множеством функций, объектов и других переменных, вы можете создать один (и идеально только один) глобальный объект для своего приложения или библиотеки.

Пространство имен по прямому назначению

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

Вложенные пространства имен

Когда задействованы несколько модулей, избегайте распространения глобальных имен путем создания единого глобального пространства имен. Оттуда любые субмодули могут быть добавлены в глобальное пространство имен. (Дальнейшее вложение замедлит производительность и добавит излишнюю сложность.) Более длинные имена могут быть использованы, если проблемы с именами являются проблемой:

 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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow