Как стать автором
Обновить

Пространство имён в Javascript-коде 2

Время на прочтение1 мин
Количество просмотров8.1K
Прочитав заметку об использовании пространств имён в Javascript коде мне захотелось поделиться подходом, который использую я. Он изобретён не мной, конечно, но, возможно кто-то о нём не знает. Этот подход отличается от предложенных в той статье тем, что позволяет кроме функций и данных видимых снаружи, также определять данные и функции локальные для пространства имен и невидимые снаружи.



Код выглядит следующим образом:

App = function()
{
   // public data
   var FooMember = 3;

   // public function
   function foo()
   {
     // use private data
     alert(_FooMember);

     // call private function
      _foo();
   }
   
   // private data
   var _FooMember = 4;

   // private function
   function _foo()
   {
   }

   return {
       FooMember: FooMember,
       foo: foo
   }
}();


Использование данного кода очевидно:
   alert(App.FooMember);
   App.foo();


Раз уж речь пошла о пространствах имен, упомяну заодно и технику имитации enumeration в Javascript. Вместо написания кода типа:
   var STORY_NEW = 1;
   var STORY_UPDATE = 2;
   var STORY_DELETE = 3;
   ..........
   switch (tag) 
   {
      case STORY_NEW: ...; break;
      case STORY_UPDATE: ...; break;
      case STORY_DELETE: ...; break;
      ...
   }


можно написать следующее:

   var StoryAction = {
      New: 1,
      Update: 2,
      Delete: 3,
      ....
   };
   ...
   switch (tag) 
   {
      case StoryAction.New: ...; break;
      case StoryAction.Update: ...; break;
      case StoryAction.Delete: ...; break;
      ...
   }


Надеюсь, что эти два приёма кому-то покажутся полезными.
Теги:
Хабы:
Всего голосов 17: ↑16 и ↓1+15
Комментарии42

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн