Вернуть часть функции в javascript - PullRequest
1 голос
/ 20 марта 2012

В javascript есть имя для этой идиомы / шаблона?Функция, которая имеет около 10 внутренних функций и 10 переменных, и возвращает литерал объекта, обычно называемый «то», который возвращает выборку внутренних функций и переменных.Например:

function myFunction() {
   var myVar1;
   var myVar2;
   var myVar3;
   ...
   ...
   function myInnerFunction1() {
       ...
   }

   function myInnerFunction2() {
       ...
   }

   function myInnerFunction3() {
   }

   var that = {
       inner1: myInnerFunction1,
       inner2: myInnerFunction2,
       var1: myVar1
   }
   return that;
}

1 Ответ

4 голосов
/ 20 марта 2012

Это называется «шаблон модуля» и / или «создание пространства имен». Поэтому у вас есть частная область видимости для ваших вещей (контекст выполнения вызова функции-оболочки, myFunction в вашем примере), и вы возвращаете объект, на котором есть только то, что вы хотите сделать общедоступным. Эти вещи (например, myInnerFunction1) имеют доступ к частной информации в функции-обертке, но ничто, использующее полученный объект, не делает.

В шаблоне модуля вы вполне можете ничего не экспортировать, если у вас нет ничего публичного, которое вам нужно предоставить напрямую (например, ваш код полностью автономен, настраивает обработчики событий и т. Д.).

...