“Javascript类库”;模仿;

“Javascript类库”;模仿;,javascript,oop,Javascript,Oop,我开始在Javascript中使用OO概念 因此,我有几个“类”js文件,每个节点将单个“类”定义为: 在使用类的HTML页面的最后,我必须添加几个js文件,如: <script type="text/javascript" charset="UTF-8" src="/Content/script/mzui.myproject.classlib.myClass1.js")" /> <script type="text/javascript" charset="UTF-8" sr

我开始在Javascript中使用OO概念

因此,我有几个“类”js文件,每个节点将单个“类”定义为:

在使用类的HTML页面的最后,我必须添加几个js文件,如:

<script type="text/javascript" charset="UTF-8" src="/Content/script/mzui.myproject.classlib.myClass1.js")" />
<script type="text/javascript" charset="UTF-8" src="/Content/script/mzui.myproject.classlib.myClass2.js")" />
<script type="text/javascript" charset="UTF-8" src="/Content/script/mzui.myproject.classlib.myClass3.js")" />
.
.
.
<script type="text/javascript" charset="UTF-8" src="/Content/script/mzui.myproject.classlib.myClassN.js")" />

最后,使用Google的闭包编译器,所有文件都将成为一个myproject.jar,但我需要保持开发环境的结构化,避免在运行时出现双重定义

那么,应该采取什么措施:

  • 将类组织到“名称空间”中。我已经搜索并可以构建单个项目对象,但是如何在所有文件中引用相同的对象(以添加类)

  • 如何避免在我的所有屏幕中出现过多标签?有没有一种方法可以将它们“捆绑”到一个javascript中,以加载所有其他javascript

  • 如何在所有文件中引用同一对象

    如果将其设置为全局,或者在全局范围内使用
    var
    声明它,或者将其设置为
    window
    的属性,则可以从任何地方访问它

    有没有一种方法可以将它们“捆绑”到一个javascript中,以加载所有其他javascript

    是的,您可以创建
    script
    元素并将它们附加到DOM中:

    var script = document.createElement('script');
    script.type = "text/javascript";
    for(var i=1; i<=n; ++i) {
       var current = script.cloneNode(false);
       current.src = "/Content/script/mzui.myproject.classlib.myClass"+i+".js";
       document.body.appendChild(current);
    }
    
    var script=document.createElement('script');
    script.type=“text/javascript”;
    
    对于(var i=1;i,由于您已经计划使用闭包编译器,我有一些关于如何进行文件/依赖项管理的非常具体的建议

  • 如果您查看一些使用Google闭包样式编写的代码,您将看到它们如何定义名称空间,以及如何使用
    goog.provide()
    goog.require()
    来声明在定义它的文件之外将使用什么,以及文件需要从代码库的其他部分获得什么

  • 我强烈建议通过使用闭包编译器和闭包库。 使用plovr,您可以定义包含一个或多个文件的配置。跨多个文件加载代码的所有合理方法(自动生成多个脚本标记/将所有文件连接到一个脚本/连接和缩小/使用优化编译)然后可以通过更改单个设置进行调整

  • Plovr由的作者Michael Bolin设计,旨在帮助人们使用闭包编译器和闭包库,而无需设置更复杂的构建过程


    一旦plovr启动并运行,正确使用
    goog.require()
    goog.provide()
    确实可以帮助您在可管理大小的文件中编写代码,并使用和连接结果。

    对不起,您能更好地解释如何通过var使其全局化吗?@Mendez如果您在任何函数之外使用
    var
    声明它,它将是一个全局变量,并且是
    窗口的一个属性。
    我知道我不知道如何将我的“类”原型声明为全局的。请检查此演示以更正:(不工作)@Mendez您的演示不起作用,因为未定义
    myproject
    ,并且您使用
    =
    而不是
    +
    来连接字符串。您应该确保
    myproject
    是在全局代码中声明的,然后您将能够从其他脚本访问它。=是一个类型错误…但是myproject应该等于什么s to:var myproject=???你能帮我解决这个问题吗?我不明白重点…这就是重点-如何创建一个“类库”。
    var script = document.createElement('script');
    script.type = "text/javascript";
    for(var i=1; i<=n; ++i) {
       var current = script.cloneNode(false);
       current.src = "/Content/script/mzui.myproject.classlib.myClass"+i+".js";
       document.body.appendChild(current);
    }