【发布时间】:2014-02-12 20:24:10
【问题描述】:
我正在尝试使用模块化命名空间模式,它允许我扩展各种命名空间中可用的功能并在多个文件中定义它们。这是我正在使用的模式;
var Namespace = Namespace || {};
Namespace.SubSpace = (function () {
var subspace = {};
subspace.Func = function () {
return "My Function";
};
return subspace;
})();
如何让我的命名空间函数在定义之前可用?换句话说,我如何调用Namespace.SubSpace.Func()而不依赖已经解析的函数声明?
【问题讨论】:
-
你不能。你为什么需要那个?
-
您是否知道在您的示例中,您正在立即执行该函数并且 Namespace.SubSpace.Func 实际上是未定义的?
-
@Bergi 我想将随附的脚本捆绑为 WebForms 组件库的一部分,因此无法保证库 javascript 将在用户脚本之前包含在内。这个问题的灵感来自微软的方法
Sys.WebForms -
从未听说过“模块化命名空间”模式。可以加个参考吗?
-
@RedTaz:只要用户脚本在包含之前不使用您的库,那没问题。如果他们尝试,您将无能为力 - 您将需要找到一种方法来保证将其包含在他们之前(询问更具体的问题)。
标签: javascript javascript-namespaces