【发布时间】:2015-11-14 11:12:42
【问题描述】:
下面有我分配给公共 Javascript 命名空间的脚本。它们在本地都可以正常工作,我可以调用TEST.loading(true) 并且所有行为都按预期运行,但是当我将它们部署到我的远程服务器时,我在 Chrome/Firefox 控制台中收到以下错误; 未捕获的 TypeError:TEST.loading 不是函数
我不明白为什么它会在本地而不是远程工作。我认为这不会有任何区别,但是我正在使用 MVC 捆绑包来部署脚本,并且我已经检查了 Chrome 的网络输出,并且脚本正在正常加载,我可以看到里面的代码......任何建议?
var TEST = TEST ||
{
dtFormat: "DD MMMM YYYY HH:mm",
loading: function loading(showLoading) {
if (showLoading) {
if (Modernizr.cssanimations)
$("#loadingAnimation").show();
else
$("#loadingStatic").show();
$("#loadingContainer").show();
}
else {
if (Modernizr.cssanimations)
$("#loadingAnimation").hide();
else
$("#loadingStatic").hide();
$("#loadingContainer").hide();
}
}
};
【问题讨论】:
-
TEST在您声明此变量之前存在? -
不,我也尝试过许多其他命名空间,结果总是一样,本地很好,远程它似乎不喜欢它
-
@Jak:关键是如果已经定义了
TEST,您就不会将loading添加到现有的。你上面的代码变成了无操作。 -
有什么理由首先拥有
var TEST = TEST || {,为什么不简单地使用var TEST = {? -
@Jak:上面的语法只有在你的脚本可能被加载两次时才有用。如果您有多个模块可能会向
TEST添加内容,则它没有用。
标签: javascript javascript-namespaces