Что такое пространство имен в JavaScript

Пространство имён в JavaScript

18.01.2021
224
4 мин.
0

Когда речь идет о разработке крупных приложений,  необходимо понимать, что такое пространство имен в JavaScript. Это особенно актуально, когда над проектом работает не один, а несколько веб-разработчиков. В начале своего пути новички часто сталкиваются с непониманием этого термина. На самом деле не все так страшно, как кажется на первый взгляд.

Что такое пространство имен в JavaScript

В процессе создания приложения оно растет и усложняется с каждым этапом. И вполне вероятно, что в какой-то момент случиться так, что в нем появятся переменные или функции с одинаковыми именами. Это особенно актуально, когда над проектом работает несколько человек. Это, конечно же, приведет к конфликту.

Чтобы избежать этого, мы можем использовать пространства имен в js для создания локальной области видимости для наших переменных и функций. Тут стоит отметить, что JavaScript на самом деле не имеет пространств имен в отличие от того, как это реализовано в других языках программирования. Поэтому речь пойдет о существующих альтернативных способов достижения того же результата. Наиболее распространенный способ моделирования пространств имен в JavaScript — использование объектов.

Прямое присвоение

Тут необходимо сразу же обратить внимание но то, что имена «id» или «next» являются общими именами. Он могут многократно встречаться в приложении. Не стоит добавлять большое количество слов к переменным для использования их в глобальной области видимости без конфликтов. Например, idOfwebApp. Лучше поместить их внутрь объекта, который будет содержать всю информацию о текущем приложении.

let webApp = {};
webApp.id = 0; 
webApp.next = function() {     
    return webApp.id++;   
} webApp.reset = function() {    
    webApp.id = 0;    
}

Давайте разберем приведенный выше код для этого примера. Если внимательно посмотреть, что здесь происходит, то можно увидеть, что здесь имеется объект, имеющий ключ с именем id и двумя функциями.

Если мы напишем, то это может стать заменой вместо использования длинных имен.

console.log(webApp.next()); // Получаем 0

Использование объектной литеральной нотации

Что такое пространство имен в JavaScript
Командная разработка приложений требует понимания пространства имен в JavaScript (изображение создано с помощью ИИ)

Это самый распространенный подход использовать пространство имен в JavaScript.

let webApp = {       
    id: 0,     
    next: function() {        
        return this.id++;        
    },     
    reset: function() {         
        this.id = 0;         
    } 
}

Читайте также: Что лучше масштабируется: JavaScript фреймворки или нативный язык.

Пространство имен в JavaScript: модульный подход

Вот тут-то мы и подошли к самому интересному! Этот код не представляет собой ничего сложного, а «();» представляет собой самовызывающейся функцией.

let webApp = (function() {     
    let id= 0;     
    return {         
        next: function() {            
            return id++;             
    },  reset: function() {             
            id = 0;              
    }     
  };   
})();

Так почему же модульный подход является наиболее действенным способом соблюдать пространство имен в js. Все дело в присвоении свойств, без использования поддерживающей логики. Кроме того, все свойства должны быть инициализированы и не могут легко ссылаться друг на друга. Такой вариант не имеет подобных ограничений и обеспечивает дополнительное преимущество конфиденциальности имен.

Заключение

Использование модульного подхода, чтобы соблюдать пространство имен в JavaScript, является гибким для больших проектов. В отличие от него, объектный подход лучше подходит для мини-проектов и аддонов меньшей сложности. Более подробно об этом в своём блоге пишет Ангус Кролл (Angus Croll).