在javascript中返回函数的一部分

时间:2012-03-20 10:35:31

标签: javascript function design-patterns idioms

在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 个答案:

答案 0 :(得分:4)

它被称为“模块模式”和/或“创建命名空间”。这样你就有了一个私有作用域(调用包装函数的执行上下文,在你的例子中为myFunction),然后你返回一个只有你要公开发布的东西的对象无障碍。那些东西(例如myInnerFunction1)可以访问包装器函数中的私有信息,但是没有使用结果对象的东西。

在模块模式中,您可能无法导出任何内容,如果您没有公开,则需要直接公开(例如,您的代码完全是自包含的,设置事件处理程序等)。