Javascript是在多个文件中包含多个类的快速方法
我正在考虑如何使用许多Javascript类使事情变得简单。我想使用单独的文件,否则我会得到超过1000行的文件。我现在要分了 在前面的一个文件中,它是一个函数,jQuery文档就绪,内部定义了类。因此,全球空间没有受到污染 当我拆分成文件时,我只想到使用一个对象来保存这些类,如下所示:Javascript是在多个文件中包含多个类的快速方法,javascript,backbone.js,Javascript,Backbone.js,我正在考虑如何使用许多Javascript类使事情变得简单。我想使用单独的文件,否则我会得到超过1000行的文件。我现在要分了 在前面的一个文件中,它是一个函数,jQuery文档就绪,内部定义了类。因此,全球空间没有受到污染 当我拆分成文件时,我只想到使用一个对象来保存这些类,如下所示: globalobject = { }; globalobject.class1 = { // code } globalobject.class2 = { // code } 但是我讨厌
globalobject = {
};
globalobject.class1 = {
// code
}
globalobject.class2 = {
// code
}
但是我讨厌写globalobject.classname
。在一个文件中,一切看起来都很好
另一种选择是使用pre_class1、pre_class2等前缀,但这也不是理想的选择
也许有什么方法可以帮助requirejs,但我快速查看了一下,但没有找到如何快速使用它,我以前从未使用过它,而且它在未使用时看起来也不那么快
有什么建议吗?顺便说一句,我也使用木偶骨干,但我是非常新的木偶。我已经看到它也有一些模块,但它仍然不是一个快速的方式为我
或者,在我还不了解木偶模块或requirejs库之前,我甚至不应该尝试分割长文件吗?您不需要继续重复使用
globalobject
符号
你可以做:
// define the class in local scope
function MyClass() {};
MyClass.prototype.myFunction = function () {};
MyClass.prototype.myOtherFunction = function () {};
// then export it
globalobject.MyClass = MyClass;
这个怎么样:
globalobject = (function(globalobject) {
// common code only accessible from class1 and inside this closure
var class1 = {
//code
};
globalobject.class1 = class1;
return globalobject;
}) ( globalobject || {} );
通过这种方式,可以在每个文件中有一个“类”,并且在向globalobject添加多个“类”时,无论导入顺序如何都可以工作。使用下划线的
extend
方法将函数添加到基类中:
// file1
var object = {
foo : function () {...}
}
_.extend(object, objectFromFile2);
// file2
var objectFromFile2 = {
bar : function () {...}
}
现在有了object.foo
和object.bar
如果您的实际问题是“如何将代码从文件1导入文件2”我建议看一下局部作用域是否是全局对象的一部分?这意味着可能您正在全局对象中创建
MyClass
函数,但使用它的是另一个对象?您还可以将匿名函数的参数重命名为类似“container”的内容。在第}(globalobject | |{})行中获取错误;未捕获的语法错误:意外标记;我盯着requireJS看,不知怎的,每一个建议的方式看起来都不完美。也许globalObject的第一个anwswer很好,但在我尝试的那一刻出现了错误,所以这就是为什么我也尝试requireJS:)可能迟早我还是需要理解它