在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;
}
答案 0 :(得分:4)
它被称为“模块模式”和/或“创建命名空间”。这样你就有了一个私有作用域(调用包装函数的执行上下文,在你的例子中为myFunction
),然后你返回一个只有你要公开发布的东西的对象无障碍。那些东西(例如myInnerFunction1
)可以访问包装器函数中的私有信息,但是没有使用结果对象的东西。
在模块模式中,您可能无法导出任何内容,如果您没有公开,则需要直接公开(例如,您的代码完全是自包含的,设置事件处理程序等)。