我有多个.js文件下的一个命名空间,假设我的命名空间是foo
,每个文件中我有一个像下面的代码:需要JavaScript头文件吗?
在文件utils.js
(function() {
window.foo = window.foo || {};
foo.utils = foo.utils || {};
foo.bar = foo.bar || {};
var utils = foo.utils;
var bar = foo.bar;
utils.helper1 = function(abc) {
var xyz = bar(abc);
...
}
})();
基本上在每个js文件,我想有像var utils = foo.utils
这样的代码,所以我不必每次都写foo.utils
。但是,我必须在顶部写foo.utils = foo.utils || {};
,因为utils.js可能尚未加载。
我认为要解决这一方法是有一个头文件,并确保它总是首先加载,就基本宣告我的命名空间下的所有公共职能象下面这样:
window.foo = windown.foo || {};
foo.bar = {};
foo.baz = {};
foo.utils = {};
有没有更好的办法?我不想确保我的js文件的加载顺序。
3.在JavaScript插入之前(可能位于头文件中),您可以在HTML中嵌入变量。但这不是一个理想的解决方案,因为每次加载页面时都会传输它(无缓存),并将HTML与JavaScript混合在一起。 –
@ ssc-hrep3 - 我想这在技术上是一个选项,但是您必须将该代码复制到每个HTML文件中,并且它仍然是顺序敏感的,因为您必须在加载相关脚本之前将其复制。而且,如果您必须进行更改,则必须修改每个HTML文件。我想我看不出比我们已有的选项2更好。 – jfriend00
有趣的是,我没有JavaScript的行业经验,所以我认为可能会有一些共识解决方案,或者一些我不知道的JavaScript魔法。谢谢! – Arch1tect