2014-07-23 36 views
0

我开始在Javascript中使用OO概念。Javascript class libraries“mimic”

所以,我有几个“下课”的js文件,每个节点确定一个单一的“一流”为:

// FILE myproject.classlib.myClass1 

// "Class" 
function myClass1(param1, param2){ 

    // Properties 
    this.prop1 = param1; 
    this.prop2 = param2; 
} 

/// "Methods" 
myClass1.prototype.doSomething = function(){ 

    alert('myClass1 Hello world. prop1=' = this.prop1); 
    alert('myClass1 Hello world. prop2=' = this.prop2); 
} 

在所在班被用于我要补充几个JS我的HTML页面的结束文件,如:

<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's关闭编译一个myproject.jar,但我必须保持我的结构化的开发环境,也避免了在运行时双定义。

那么,究竟应做:

  1. 组织类,分为 “命名空间”。我搜索了,我可以建立一个单一的项目对象,但我怎样才能引用所有文件中的同一个对象(添加类)?

  2. 可以做些什么来避免我所有屏幕中的标签太多?有没有办法将它们“捆绑”在一个单独的JavaScript中,以加载所有其他的?

+1

请参阅http://browserify.org/ – elclanrs

回答

0

既然你已经在使用关闭编译器的规划,我对如何做文件的一些非常具体的建议/依赖管理。

  1. 如果检查出写入到谷歌关闭风格一些代码,你会看到他们是如何定义的命名空间和使用goog.provide()goog.require()声明一下将文件之外使用定义它,什么文件需要来自代码库的其他部分。

  2. 我强烈建议通过plovr使用Closure编译器和Closure库。 使用plovr,您可以定义一个包含一个文件或多个文件的配置。然后,可以通过更改单个设置来调整所有将代码加载到多个文件中的明智方式(自动生成多个脚本标记/将所有文件连接成1个脚本/并置和缩小/优化编译)。

Plovr设计由the one book on Google Closure作者,迈克尔·博林,帮助人们使用关闭编译器和Closure库,而无需建立一个更复杂的构建过程。

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

0

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

如果你让全球性的,无论是在全球范围内与var宣布它,或将其设置为window属性,那么你可以从任何地方访问它。

有没有办法将它们“捆绑”在一个单独的JavaScript中,将加载所有其他的?

是的,你可以创建script元素,并将它们添加到DOM:

​​
+0

对不起,您可以更好地解释如何使它成为全球虽然var? – Mendes

+0

@Mendez如果你在任何函数外用'var'声明它,它将是一个全局变量,并且是'window'的一个属性。 [Demo](http://jsfiddle.net/QrLwT/) – Oriol

+0

我知道......我不知道的是如何将我的“class”原型声明为全局的。检查此演示更正:http://jsfiddle.net/4vaMp/(不工作)。 – Mendes