Javascript 将多个JS文件包装到一个对象中
第一次在这里发帖,所以要友善 我第一次创建了一个网站,并且对简化我的写作很感兴趣,这样我就可以将每个javascript文件包装在一个对象中,然后调用一个函数来启动程序Javascript 将多个JS文件包装到一个对象中,javascript,namespaces,Javascript,Namespaces,第一次在这里发帖,所以要友善 我第一次创建了一个网站,并且对简化我的写作很感兴趣,这样我就可以将每个javascript文件包装在一个对象中,然后调用一个函数来启动程序 var window, document, AB = {}; AB.MAIN = (function() { var files = [ "file1.js", "file2.js", "start.js" ], load = function (js)
var window, document, AB = {};
AB.MAIN = (function() {
var files = [
"file1.js",
"file2.js",
"start.js"
],
load = function (js) {
var script, scripts,
body = document.body;
for (var i = js.length - 1; i >= 0; i -= 1) {
script = document.createElement('script');
script.src = js[i];
body.appendChild(script);
}
}(files);
return {
start: function () {
start();
},
}
}());
window.onload = AB.MAIN.start;
因此,我让我的主对象加载文件并返回一个名为“start”的函数,然后用window.onload调用该函数。这样做的目的是将所有内容都保留在一个名称空间中,但由于我是新手,我不确定这是否A)实际实现了我希望它实现的目标,B)一开始是个好主意
.js文件中的所有函数实际上都被限制在AB.MAIN对象中吗?在我看来函数太多了。
load=
之后立即调用函数似乎有点毫无意义。。。并且没有返回任何内容,因此加载
将未定义
。您的主要函数是返回一个带有start
属性的对象,但其中还有一个不必要的函数。只能执行返回{start:start}代码>。。。尽管您还没有在任何地方定义start
函数。这是否意味着加载?…但是,是的,在最外层函数中声明的所有函数和变量都是在本地定义的,并且在该外层函数外部不直接可见。“start”函数位于一个.js文件中。当我尝试执行start:start时,我得到一个错误,即“start”未定义,可能是因为文件尚未加载。在函数中包装它消除了错误。我明白了。这是有道理的,但只适用于被调用的start
函数是全局函数。您可能知道这一点,但您正在加载的脚本并不局限于此变量范围。只有直接写在里面的代码是。啊,我不知道这个。这基本上就是我想找到的。我很难判断情况是否如此,因为只需执行window.onload=start;带来了一个错误。现在我尝试了别的方法,意识到我的错误。。。。