Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript是在多个文件中包含多个类的快速方法_Javascript_Backbone.js - Fatal编程技术网

Javascript是在多个文件中包含多个类的快速方法

Javascript是在多个文件中包含多个类的快速方法,javascript,backbone.js,Javascript,Backbone.js,我正在考虑如何使用许多Javascript类使事情变得简单。我想使用单独的文件,否则我会得到超过1000行的文件。我现在要分了 在前面的一个文件中,它是一个函数,jQuery文档就绪,内部定义了类。因此,全球空间没有受到污染 当我拆分成文件时,我只想到使用一个对象来保存这些类,如下所示: globalobject = { }; globalobject.class1 = { // code } globalobject.class2 = { // code } 但是我讨厌

我正在考虑如何使用许多Javascript类使事情变得简单。我想使用单独的文件,否则我会得到超过1000行的文件。我现在要分了

在前面的一个文件中,它是一个函数,jQuery文档就绪,内部定义了类。因此,全球空间没有受到污染

当我拆分成文件时,我只想到使用一个对象来保存这些类,如下所示:

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:)可能迟早我还是需要理解它